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检测远程udp端口是否打开的方法
Mar 14 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
python实现二叉树的遍历
Dec 11 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
python交易记录整合交易类详解
Jul 03 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
Python实现Excel自动分组合并单元格
Feb 22 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
星际争霸中的热键
2020/03/04 星际争霸
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php上传文件常见问题总结
2015/02/03 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
jquery 批量上传图片实现代码
2010/01/28 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
vue axios用法教程详解
2017/07/23 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
使用Python进行目录的对比方法
2018/11/01 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
费用会计岗位职责
2014/01/01 职场文书
初二物理教学反思
2014/01/29 职场文书
销售人员获奖感言
2014/02/05 职场文书
干部下基层实施方案
2014/03/14 职场文书
年度考核个人总结
2015/03/06 职场文书
离婚案件上诉状
2015/05/23 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
Ajax异步刷新功能及简单案例
2021/11/20 Javascript