重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python中使用反射的方法的代码

开发之余,把开发过程中常用的一些内容段做个珍藏,下面的内容是关于python中使用反射的方法的内容,应该是对码农们有一些用途。

我们提供的服务有:网站制作、成都做网站、微信公众号开发、网站优化、网站认证、文安ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的文安网站制作公司

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 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")    
    print bb

当前名称:python中使用反射的方法的代码
文章来源:http://cqcxhl.cn/article/jdejcg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP