场景:python 包中有多个模块需要访问并修改同一个全局变量。
实现:
- 将全局变量单独保存在一个.py文件中;
- 在需要访问或修改的模块中导入该全局变量模块。
示例:
- 文件结构如下所示:
/tests
test_a.py
test_b.py
test_global.py
test_main.py - 各文件代码及含义如下所示:
# test_global.py
#定义全局变量
variable = 'const'
# test_a.py
# 将全局变量赋值为'A'
from tests import test_global
def a():
test_global.variable = 'A'
# test_b.py
# 将全局变量赋值为'B'
from tests import test_global
def b():
test_global.variable = 'B'
# test_main.py
# main函数
from tests import test_global
from tests.test_a import a
from tests.test_b import b
def main():
print(test_global.variable) # 打印全局变量的初值
a() # 更改全局变量为'A'并打印
print(test_global.variable)
b() # 更改全局变量为'B'并打印
print(test_global.variable)
main()
- 打印结果如下:
const
A
B