Python中的反射
假设我
abc.py
文件下定于了这个方法:
def all_count():
return 1
temp = "abc"
model = __import__(temp)
model.all_count()
#以字符串的形式导入模块,以字符串的形式执行函数
#修改模块的话,只需要修改temp的值即可
#例如“abc”改为“cba”
temp = "abc"
model = __import__(temp)
func = "all_count"
Function = getattr(model, func)
#以字符串的形式导入模块,以字符串的形式执行函数
#修改模块的话,只需要修改变量temp的值即可
#例如“abc”改为“cba”
#函数名发生变化,如all_count()变为all(),只需改func变量的值就好!
getattr(model, func),会导入模块model,并执行里面的func(指的是all_count())方法!