python 28 动态导入模块

# 导入 m1/t.py module_t 实际上是指向到m1
module_t = __import__("m1.t")
print(module_t)  # 
module_t.t.test1()  # m1 -> t.py : test1()

# 通过 import * 模块中带下划线的方法将不被导入
from m1.t import *
test1()  # m1 -> t.py : test1()
test2()  # m1 -> t.py : test2()
_test3()  # NameError: name '_test3' is not defined

from m1.t import test1, test2, _test3
test1()  # m1 -> t.py : test1()
test2()  # m1 -> t.py : test2()
_test3()  # m1 -> t.py : _test3()

# 通过 importlib 导入
import importlib
m = importlib.import_module("m1.t")
print(m)  # 
m.test1()  # m1 -> t.py : test1()

 

你可能感兴趣的:(python基础,python,动态导入模块)