这也提供了比在除了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中的新功能。

相关文章:

  • 2021-10-06
  • 2021-09-12
  • 2021-08-31
  • 2021-12-29
  • 2021-08-29
  • 2021-10-31
  • 2021-07-08
猜你喜欢
  • 2021-10-26
  • 2021-11-02
  • 2021-09-11
  • 2021-09-24
  • 2021-11-20
  • 2021-11-14
  • 2021-05-19
  • 2021-09-13
相关资源
相似解决方案