您好,欢迎来到亿米科技网。
搜索
您的当前位置:首页python中反射用法实例

python中反射用法实例

来源:亿米科技网


本文实例讲述了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程序设计有所帮助。

Copyright © 2019- ymm1.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务