我知道您可以使用global
关键字。但这不是……全球性的。这只是引用此函数之外的另一个变量的一种方法。如果您有一个要引用的变量,我想没什么大不了的(尽管仍然很麻烦)。但是,如果要在函数中移动很多变量,该怎么办?我是否必须在每个函数中每次都声明具有全局范围的2或3或10个变量?是否没有办法声明[1]某个变量(某个位置或某种方式)以使其真正成为全局变量?
理想情况下,我想要一个包含主代码的文件main.py和一个包含所有全局变量(已声明/初始化[1])和一个from common import *
的文件common.py我将能够使用在[[common.py。
我很抱歉,如果重复的话。我确实在附近搜索,但似乎找不到任何东西。也许您可以使用classes(?)来做到这一点,但我试图避免在特定程序中使用它们(但是如果没有其他方法,我可以采用)
我知道在python中,您实际上并没有声明变量,您只是对其进行了初始化,但我明白了
sys
:import sys
myfile = open('path/to/file.txt', 'w')
sys.stdout = myfile
sys.stdout
是全局变量。程序各个部分中的许多内容(包括您无权直接访问的部分)都在使用它,并且您会注意到,在此处进行更改会改变整个程序的行为。如果在任何地方使用print()
,它将输出到您的文件中,而不是标准输出。您可以通过简单地制作整个项目都可以访问的
common
源文件来选择这种行为:common.py
var1 = 3 var2 = "Hello, World!"
sourcefile1.py
from . import common print(common.var2) # "Hello, World!" common.newVar = [3, 6, 8]
fldr/sourcefile2.py
from .. import common print(common.var2) # "Hello, World!" print(common.newVar) # [3, 6, 8]
如您所见,您甚至可以分配最初没有的新属性(common.newVar
)。但是,最好将
dict
放在common
中并存储各种全局值-将新键推到dict上比添加新属性更容易维护。到一个模块。