importlib
是 Python3.1
增加的系统库,其中最常用的函数是其中的 import_module
,其作用是:
module
动态导入- 检查模块是否可以导入
示例:动态导入 module,并根据成员变量和成员函数来过滤符合条件的类
1、demo.py
class Main:
__MAIN__ = True
def process(self):
pass
2、import_module.py
import importlib
import inspect
def get_main_class(py_file):
module_name = py_file.split(".")[0].strip()
_module = importlib.import_module(module_name) # 导入模块
print(_module) # <module 'demo' from 'C:\\Users\\xx\\Desktop\\demo.py'>
# getmembers: 获取成员与判断
for k, v in inspect.getmembers(_module):
# 判断是否为类,且判断类是否有 process 方法和类变量 __MAIN__(反射)
if inspect.isclass(v) and getattr(v, "process") and getattr(v, "__MAIN__"):
print(k, v) # Main <class 'demo.Main'>
if __name__ == '__main__':
print(get_main_class("demo.py"))
参考: