十六——reflect反射机制
一、单目录
commons页面
visit页面
为了方便防止commons文件有很多函数导致visit中也写多个elif,我们使用python提供的反射机制。其主要就表现在getattr()等几个内置函数上
func = getattr(commons,inp),通过getattr()函数,从commons模块中,查找到和inp字符串一样的函数名,并将其返回,然后赋值给func变量。变量func此时就指向那个函数,func()就可以调用该函数。
hasattr(commons,inp),用来判断commons中是否有某个成员,返回True或False。
二、多目录
处理函数被放置在多个不同目录的不同模块中时,为了减少一次次的在visit中导入n个模块,可以使用python内置的__import__(字符串参数)函数解决。
__import__() 函数用于动态加载类和函数 。
如果一个模块经常变化就可以使用 __import__() 来动态载入。
对于跨目录去导入模块,加上fromlist=True即可!!!fromlist=True是导入全部目录