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

 

posted @ 2019-11-19 21:37  就是想学习  阅读(1242)  评论(0编辑  收藏  举报