首页 >后端开发 >Python教程 >如何避免或管理 Python 中的循环导入?

如何避免或管理 Python 中的循环导入?

DDD
DDD原创
2024-12-20 02:32:09238浏览

How Can Circular Imports in Python Be Avoided or Managed?

相互或循环导入的问题

当 Python 中的两个模块尝试相互导入时,看似预期的结果将是成功导入。然而,多个模块进行循环导入尝试的场景会带来复杂性。

直接与来自导入

如果尝试直接导入(例如,在 bar.import 中导入 foo)。 py 和 foo.py 中的 import bar),导入通常会成功执行。在代码执行开始时,两个模块都将被加载并建立相互引用。

使用“from”导入(例如,from foo import abc 和 from bar import xyz)时会出现问题。在这些情况下,每个模块都需要在导入自己的模块之前先导入另一个模块。这会造成死锁。

Python 中的工作循环导入

尽管存在潜在的循环导入问题,但在某些情况下它们不会导致问题。特定 Python 版本的示例包括:

  • Python 2: 在模块顶部直接导入
  • Python 3:

    • 直接导入或相对“来自”顶部导入模块
    • 直接导入或非相对“from”导入,并在模块底部显式导入属性

其他注意事项

星号导入(例如,from foo import *)可能会引入所提供的参考文献中未涵盖的进一步复杂性下面。

以上是如何避免或管理 Python 中的循环导入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn