python动态加载类和函数的内置函数--__import__

#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函数


猜你喜欢

转载自blog.csdn.net/xianjie0318/article/details/80433303