如何在多个文件之间共享一个变量?

How to share a variable between several files?

我有几个文件的函数使用一个变量。

main.py

from functions import my_func

my_var: int

def main():
   my_var = 5
   my_func()

functions.py

from main import my_var

def my_func():
   print(my_var)

它不起作用。我知道我可以在 my_func() 中传递 my_var 但是还有其他方法吗?如果有,我该怎么做?

在第 2 行,您不能从 functions.py 导入 my_func,因为这需要在 funtions.py 的第一行从 main.py 导入 my_var .

这里的问题是您试图与局部变量交互,因此在与它交互之前必须在函数内部使用关键字“全局变量”。另一个问题是 Python 中的循环导入(检查这个答案:Circular (or cyclic) imports in Python)。

如果您执行 import foo(在 bar.py 内)和 import bar(在 foo.py 内),它将正常工作。当任何东西实际运行时,两个模块都将完全加载并相互引用。

问题是当您改为执行 from foo import abc(在 bar.py 内)和 from bar import xyz(在 foo.py 内)时。因为现在每个模块都需要另一个模块已经导入(以便我们导入的名称存在)才能导入。