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

问题描述

我有几个文件,这些文件功能使用一个变量。

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_var中通过my_func(),但是还有其他方法吗?如果可以,我该怎么做?

解决方法

在第2行上,您无法从my_func导入functions.py,因为这需要在my_var的第一行从main.py导入funtions.py。 / p>

,

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

如果您确实导入foo(在bar.py内部)和导入bar(在foo.py内部),则可以正常工作。到实际运行任何东西时,两个模块都将完全加载,并且相互引用。

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