如何在多个文件之间共享一个变量?
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 内)时。因为现在每个模块都需要另一个模块已经导入(以便我们导入的名称存在)才能导入。
我有几个文件的函数使用一个变量。
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 内)时。因为现在每个模块都需要另一个模块已经导入(以便我们导入的名称存在)才能导入。