在Python中将全局变量传递给另一个文件?

2024-10-01 09:23:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有

# file1.py
global a, b, c, d, e, f, g

def useful1():
   # a lot of things that uses a, b, c, d, e, f, g

def useful2():
   useful1()
   # a lot of things that uses a, b, c, d, e, f, g

def bonjour():
   # a lot of things that uses a, b, c, d, e, f, g
   useful2()

以及

^{pr2}$

如何处理所有这些全局变量?

PS:我不想为所有函数添加a, b, c, d, e, f, g,必须这样做是非常多余的:

def useful1(a, b, c, d, e, f, g):
...
def useful2(a, b, c, d, e, f, g):
...
def bonjour(a, b, c, d, e, f, g):
...

Tags: ofpythatdefglobalfile1pslot
3条回答

使用dict将这些全局变量包装起来,然后只为函数包装一个param

你不需要通过他们。如果您已经在主.py,可以直接引用file1.a等。在

然而,有这么多全局变量是很糟糕的。您可能应该使用类进行重构。在

在单个程序中跨模块共享信息的规范方法是创建一个特殊模块(通常称为config或cfg)。只需在应用程序的所有模块中导入config模块;然后该模块就可以作为全局名称使用了。因为每个模块只有一个实例,所以对模块对象所做的任何更改都会反映在每个地方。例如:

配置.py:

x = 0   # Default value of the 'x' configuration setting

模型py:

^{pr2}$

主.py:

import config
import mod
print config.x

相关问题 更多 >