【发布时间】:2023-07-28 09:15:01
【问题描述】:
我已阅读 this post 关于 Python 循环导入的内容。它描述了以下场景,并认为这会在运行时引发错误:
# module1
import module2
def function1():
module2.function2()
def function3():
print('Goodbye, World!')
# module2
import module1
def function2():
print('Hello, World!')
module1.function3()
# __init__.py
import module1
module1.function1()
但是当我运行它(Python 3.95)时,它运行得非常好。这篇文章很旧,它没有指定它使用的 Python 版本。也许支持这一点的后来的 Python 有一些变化?
【问题讨论】:
-
这可能是一个愚蠢的问题,但是您在此处粘贴的代码是在不同的模块中吗?还是只是一个带有 cmets 的文件?
-
这些是不同的模块
-
我在 python 3.5.2 上试过,它也可以在那里工作
-
这篇文章来自 2017 年,显然使用 __init__ 中的任何内容之前始终加载这两个模块。
-
我可能是错的,但我认为循环导入是使用相对导入时的问题。如果您使用绝对导入,那么您的代码可以工作(或至少应该)。看看this link
标签: python circular-dependency