Python 动态载入包


def  get_plugin_by_name( self , package, clazz_name):
     """
     package 类所在路径
     clazz_name 类名
     http://stackoverflow.com/questions/547829/how-to-dynamically-load-a-python-class
     https://docs.python.org/2/library/functions.html?highlight=__import__#__import__
     :param package:
     :param clazz_name:
     :return:
     """
     try :
         plugin_name  =  clazz_name.capitalize()  +  'Plugin'
         module  =  __import__ (package  +  '.'  +  clazz_name, fromlist = [plugin_name])
         claz  =  getattr (module, plugin_name)
         return  claz(region_id = self .get_current_region_id(),
                     access_key = self .aliyun_access_key)
     except  Exception as exp:
         LOG.error( "Get plugin: %s by package: %s error for %s"  %  (clazz_name, package, exp,))

via  http://wangyuelucky.blog.51cto.com/1011508/1751969

#getMod("xx.xx.cc","class_in_cc")
def getMod(self, name, classname):
    m = __import__(name, globals(), locals(), [classname])
    c = getattr(m, classname)
    return c

猜你喜欢

转载自blog.csdn.net/ambulong/article/details/54645719