import 和 __import__的区别,以及官方包importlib
import作用: 导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录; __import__作用: 同import语句同样的功能,但__import__是一个函数,并且只接收字符串作为参数,所以它的作用就可想而知了。其实import语句就是调用这个函数进行导入工作的,import sys <==>sys = __import__('sys')。
虽然是复制过来的,还是上代码测试。
import os os2 = __import__('os') print(os) print(os2) print(os == os2) print(os is os2)
<module 'os' from '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py'> <module 'os' from '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py'> True True
话说这种搞法有点像装饰器,说起装饰器,有空要给自己好好写一篇装饰器的文章。框架里面用到装饰器太多了。
Django的中间件就是用到了多层的装饰器。
2020-10-19添加资料,忘记了哪本书中说过,__import__现在没有importlib好用
In [20]: import importlib In [21]: import time In [22]: tim1 = __import__('time') In [23]: tim2 = importlib.import_module('time') In [24]: time is tim1 Out[24]: True In [25]: time is tim1 is tim2 Out[25]: True