这是“便利包装”吗?https://docs.python.org/2/library/importlib.html只是提供了另一种书写方式:

import path.to.my.module

有什么是您无法使用常规import语句执行的操作吗?

最佳答案

在Python 2.7中,importlib并不是 super 有用。实际上,它的唯一功能是import_module函数,它使您能够从字符串名称导入模块:

>>> import importlib
>>> importlib.import_module('sys')
<module 'sys' (built-in)>
>>> importlib.import_module('sys').version
'2.7.8 (default, Jul  2 2014, 19:50:44) [MSC v.1500 32 bit (Intel)]'
>>>

请注意,您可以使用内置的 __import__ 进行相同的操作,但是通常首选使用import_module

但是,在Python 3.1及更高版本中,importlib的用途已得到扩展。根据documentation:



综上所述,importlib现在允许您访问Python的导入语句的内部信息,构建自定义查找器,加载器和导入器,设置导入 Hook 等。

实际上,从3.3版开始,importlib保留了导入语句本身的实现。您可以在Using importlib as the Implementation of Import下的“Python 3.3新增功能”页面中了解有关此内容的信息。

另外,importlib将替换与将来的Python版本中的导入相关的旧模块。例如,版本3.4中不推荐使用旧的 imp 模块,而推荐使用importlib

考虑到所有这些,我想可以肯定地说importlib在现代Python中非常重要。 ;)

关于python - Python的importlib有什么意义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27307072/

10-11 03:49