我有两个模块:a.py和b.py
a.py:
foo = 0
def increase():
global foo
foo += 1
b.py:
from a import *
increase()
print(foo)
运行b.py会得到结果:0
,但我期望的结果是1
然后我修改了b.py
b.py:
import a
a.increase()
print(a.foo)
然后我得到了正确的结果:1
我的问题是为什么b.py的第一版出现了错误的结果。导入全局变量的正确方法是什么?
答案 0 :(得分:0)
导入全局变量的正确方法是重新设计代码,这样您就不需要了。你应该导入函数,也许是常量(通常是Python中的UPPER_CASE),但不是全局变量。全局变量在库中已经足够糟糕了,但是在多个模块中使用它们只会遇到麻烦。