__import__() 函数用于动态加载类和函数 。
如果一个模块经常变化就可以使用 __import__() 来动态载入。
语法
__import__ 语法:
__import__(name[, globals[, locals[, fromlist[, level]]]])
参数说明:
name -- 模块名
英文文档:
__import__(name, globals=None, locals=None, fromlist=(), level=0)
getattr() 是 Python 内置的一个函数,可以用来获取一个对象的属性值或方法。
其基本语法为:getattr(object, name[, default])
其中,object 是要获取属性值或方法的对象;name 是要获取的属性名或方法名;default 是可选参数,当指定的属性或方法不存在时,会返回 default 的值。
getattr() 可以通过对象实例或类名来获取属性值或方法,也可以获取内置函数、内置类型和标准库中的属性和方法。
Example1
package_name = "sens.modules.app.{}".format(self.protocol)
package = __import__(package_name, fromlist=[self.protocol])
package.check(rule, self.data)
Example2
#index.py
print ('index')
def sayHello():
print('sayHello ...')
class Cat():
def __init__(self):
print('cat init')
def run(self,name):
print("cat:{} , running".format(name))
#test.py
# coding:utf-8
mod = __import__("index")
mod.sayHello()
CatClass = getattr(mod,"Cat")
cat = CatClass()
methodRun = getattr(cat,'run')
methodRun("Tom")
__index__
sayHello ...
cat init
cat:Tom , running
posted on
浙公网安备 33010602011771号