#encoding:utf-8 if __name__ == '__main__': m=__import__('TestCaseClass.SystemMange') s=getattr(m, 'SystemMange') l=getattr(s, 'SystemMange') print(m) print(s) print(l) k=getattr(l(), 'login') print(k)
打印信息:
<module 'TestCaseClass' from 'C:\\Users\\Administrator\\workspace\\AutoTestframe\\src\\TestCaseClass\\__init__.py'> <module 'TestCaseClass.SystemMange' from 'C:\\Users\\Administrator\\workspace\\AutoTestframe\\src\\TestCaseClass\\SystemMange\\__init__.py'> <class 'TestCaseClass.SystemMange.SystemMange.SystemMange'> <bound method SystemMange.login of <TestCaseClass.SystemMange.SystemMange.SystemMange object at 0x0000028FF395D240>>
解析:
__import__() 函数用于动态加载类和函数 。
如果一个模块经常变化就可以使用 __import__() 来动态载入。
语法
__import__ 语法:
__import__(name[, globals[, locals[, fromlist[, level]]]])
参数说明:
name -- 模块名
案例:
m=__import__('TestCaseClass.SystemMange'),两级的模块,只加载第一级类(模块)
s=getattr(m, 'SystemMange'),然后再加载第二级的模块
l=getattr(s, 'SystemMange'),加载第二级模块下的类名称
k=getattr(l(), 'login'),加载第二级模块下的类中的login函数