第159课时:import() import加载底层原理importlib模块
import()动态导入
给import 传递不同的字符串 就可以调用不同的模块,动态调入。
测试:动态导入
s = 'math'
m = __import__(s)
print(m.pi)
3.141592653589793
不建议使用__import__(),会在py2和py3中出现差异,导致错误,
所以推荐使用importlib 模块
import importlib
s = 'math'
a = importlib.import_module(s)
print(a.pi)
3.141592653589793
解析:
a = importlib.import_module(s) 这个语句就是动态导入语句
import_module()函数就是动态导入函数
模块加载的问题:
Salary模块中的语句
print('hahahah')`
操作程序
import salary
import salary
hahahah
两次导入这个模块,但是结果只执行一次print 这就表示当前这个模块再解释器中只有一个对象
如果你确实需要重复加载一个模块这个动作,用reload()
import salary
import salary
print('.......')
import importlib
importlib.reload(salary)
hahahah
…
hahahah
所以可以看到,这个模块又重新加载一次。