python中反射用法实例


Posted in Python onMarch 27, 2015

本文实例讲述了python中反射用法。分享给大家供大家参考。具体如下:

import sys, types,new
def _get_mod(modulePath):
  try:
    aMod = sys.modules[modulePath]
    if not isinstance(aMod, types.ModuleType):
      raise KeyError
  except KeyError:
    # The last [''] is very important!
    aMod = __import__(modulePath, globals(), locals(), [''])
    sys.modules[modulePath] = aMod
  return aMod
def _get_func(fullFuncName):
  """Retrieve a function object from a full dotted-package name."""
  # Parse out the path, module, and function
  lastDot = fullFuncName.rfind(u".")
  funcName = fullFuncName[lastDot + 1:]
  modPath = fullFuncName[:lastDot]
  aMod = _get_mod(modPath)
  aFunc = getattr(aMod, funcName)
  # Assert that the function is a *callable* attribute.
  assert callable(aFunc), u"%s is not callable." % fullFuncName
  # Return a reference to the function itself,
  # not the results of the function.
  return aFunc
def _get_Class(fullClassName, parentClass=None):
  """Load a module and retrieve a class (NOT an instance).
  If the parentClass is supplied, className must be of parentClass
  or a subclass of parentClass (or None is returned).
  """
  aClass = _get_func(fullClassName)
  # Assert that the class is a subclass of parentClass.
  if parentClass is not None:
    if not issubclass(aClass, parentClass):
      raise TypeError(u"%s is not a subclass of %s" %
              (fullClassName, parentClass))
  # Return a reference to the class itself, not an instantiated object.
  return aClass
def applyFuc(obj,strFunc,arrArgs):
  objFunc = getattr(obj, strFunc)
  return apply(objFunc,arrArgs)
def getObject(fullClassName):
  clazz = _get_Class(fullClassName)
  return clazz()
if __name__=='__main__':
  aa=getObject("inetservices.services.company.Company")  
  bb=applyFuc(aa, "select", ['select * from ngsys2',None])
  print bb

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python分析apache访问日志脚本分享
Feb 26 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
详解Django框架中的视图级缓存
Jul 23 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
如何用itertools解决无序排列组合的问题
May 18 Python
django使用html模板减少代码代码解析
Dec 12 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
使用python判断你是青少年还是老年人
Nov 29 Python
Django学习笔记之为Model添加Action
Apr 30 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
python调用win32接口进行截图的示例
Nov 11 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 #Python
python根据出生日期返回年龄的方法
Mar 26 #Python
python获取远程图片大小和尺寸的方法
Mar 26 #Python
python使用cStringIO实现临时内存文件访问的方法
Mar 26 #Python
python使用pil生成缩略图的方法
Mar 26 #Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 #Python
python正则表达式match和search用法实例
Mar 26 #Python
You might like
一篇入门的php Class 文章
2007/04/04 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
使用PHP开发留言板功能
2019/11/19 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
python实现ip查询示例
2014/03/26 Python
Python MD5加密实例详解
2017/08/02 Python
Django添加sitemap的方法示例
2018/08/06 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
django用户登录验证的完整示例代码
2019/07/21 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python 回溯法模板详解
2020/02/26 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
质检的岗位职责
2013/11/17 职场文书
出纳岗位职责范本
2013/12/01 职场文书
社区工作者感言
2014/03/02 职场文书
消防安全责任书范本
2014/04/15 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers