我正在尝试跨类更改全局变量。这是我的代码:
文件main.py
import class2
class first:
def changeA(self):
global a
print a
a += 2
print a
test0 = first()
test1 = class2.second()
test2 = first()
test3 = class2.second()
test0.changeA()
test1.changeA()
test2.changeA()
test3.changeA()
文件class2.py
a = 1
class second:
def changeA(self):
global a
print a
a += 1
print a
但它返回错误:未定义全局名称“a”。是否有任何正确的方法来访问和更改 python 中跨文件的全局变量?提前致谢
请您参考如下方法:
python 中不存在全局变量。
global 语句实际上是一个用词不当的语句。这意味着该变量是一个模块 的变量。 python 中没有全局命名空间这样的东西。
如果你想修改来自多个模块的变量,你必须将它设置为一个属性:
import module
module.variable = value
做一个简单的赋值将简单地创建或修改模块的变量。代码
from module import variable
variable = value
简单地隐藏从 module 导入的 variable 的值,创建一个 new 与该标识符的绑定(bind),但 module' s 变量 值不会改变。
总而言之:不,没有办法完全实现您想要的(尽管您想要的无论如何都是一种不好的做法,您应该尝试使用不同的解决方案)。
