我对全局变量的工作原理有点困惑。 我有一个大型项目,约有50个文件,我需要为所有这些文件定义全局变量。
我的做法是在项目的main.py
文件中定义它们,如下所示:
# ../myproject/main.py
# Define global myList
global myList
myList = []
# Imports
import subfile
# Do something
subfile.stuff()
print(myList[0])
我正在尝试在 subfile.py
中使用 myList
,如下所示
# ../myproject/subfile.py
# Save "hey" into myList
def stuff():
globals()["myList"].append("hey")
我尝试的另一种方式,但也不起作用
# ../myproject/main.py
# Import globfile
import globfile
# Save myList into globfile
globfile.myList = []
# Import subfile
import subfile
# Do something
subfile.stuff()
print(globfile.myList[0])
我在subfile.py
中放置了以下内容:
# ../myproject/subfile.py
# Import globfile
import globfile
# Save "hey" into myList
def stuff():
globfile.myList.append("hey")
但是,再次尝试后,它仍然没有起作用。我该如何实现这个功能?我知道当两个文件彼此不了解时(子文件不知道主文件),它不能像那样工作,但我想不出如何做到这一点,而又不使用 io 写入或 pickle,这是我不想要的。