day8-动态导入模块

 1 目录结构:
 2 ---lib
 3     |---aa.py        #存在类A
 4     |---testlib
 5           |---bb.py    #存在类B
 6 ---test_in.py        #执行文件
 7 
 8 # 动态导入模块
 9 # 前提条件:知道模块的字符串形式
10 # __import__导入只能从第一层开始使用
11 aa = 'lib.aa'
12 mod = __import__(aa)
13 instance_a = getattr(mod.aa, 'A')
14 obj = instance_a()
15 print obj.name
16 
17 bb = 'lib.testlib.bb'
18 mod = __import__(bb)
19 instance_b = getattr(mod.testlib.bb, 'B')
20 obj = instance_b()
21 print obj.name
22 
23 # importlib导入可以从导入的模块开始使用,官方推荐
24 import importlib
25 mod = importlib.import_module(aa)
26 obj = mod.A()
27 print obj.name
28 
29 mod = importlib.import_module(bb)
30 obj = mod.B()
31 print obj.name
32 
33 --------------------------------------------
34 test
35 bb
36 test
37 bb

 

posted @ 2017-09-13 10:23  不知所以  阅读(91)  评论(0)    收藏  举报