相互或循环导入的问题
当 Python 中的两个模块尝试相互导入时,看似预期的结果将是成功导入。然而,多个模块进行循环导入尝试的场景会带来复杂性。
直接与来自导入
如果尝试直接导入(例如,在 bar.import 中导入 foo)。 py 和 foo.py 中的 import bar),导入通常会成功执行。在代码执行开始时,两个模块都将被加载并建立相互引用。
使用“from”导入(例如,from foo import abc 和 from bar import xyz)时会出现问题。在这些情况下,每个模块都需要在导入自己的模块之前先导入另一个模块。这会造成死锁。
Python 中的工作循环导入
尽管存在潜在的循环导入问题,但在某些情况下它们不会导致问题。特定 Python 版本的示例包括:
Python 3:
其他注意事项
星号导入(例如,from foo import *)可能会引入所提供的参考文献中未涵盖的进一步复杂性下面。
以上是如何避免或管理 Python 中的循环导入?的详细内容。更多信息请关注PHP中文网其他相关文章!