十六——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是导入全部目录

posted @ 2020-01-03 00:48  弥尔  阅读(136)  评论(0编辑  收藏  举报