这也提供了比在除了Python之外的编程语言中实现的实现更容易理解的实现。
importer)以参与导入处理。
- ¶
-
__import__()函数的实现。
注意
import_module()而不是此函数。
- ¶
-
pkg.mod)。
pkg)。
invalidate_caches()才能注意到新模块由进口系统。
在版本3.3中更改:父包会自动导入。
- ¶
-
None。
要正确导入子模块,您需要导入子模块的所有父包,并使用正确的参数path。
版本3.3中的新功能。
None
importlib.util.find_spec()。
- ¶
-
如果在程序运行时创建/安装了任何模块,则应调用此函数,以确保所有查找程序都注意到新模块的存在。
版本3.3中的新功能。
- ¶
-
sys.modules中,则可能不同)。
reload()时:
- init功能不再第二次调用。
- 与Python中的所有其他对象一样,旧对象只有在引用计数下降到零后才被回收。
- 模块命名空间中的名称将更新为指向任何新的或已更改的对象。
- 对旧对象的其他引用(例如模块外部的名称)不会重新引用来引用新对象,如果需要,必须在每个命名空间中对其进行更新。
还有一些其他警告:
try语句可以测试表的存在并跳过其初始化,如果需要,这个特性可以用于模块的优势:
try: cache except NameError: cache = {}在许多情况下,扩展模块不会被设计为初始化多次,并且可能在重新加载时以任意方式失败。
import和限定名称(module.name t15>)。
对于派生类同样如此。
版本3.4中的新功能。