gpt4 book ai didi

python - 在python中跨类更改全局变量

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:14 26 4
gpt4 key购买 nike

我正在尝试跨类更改全局变量。这是我的代码:

文件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 变量不会改变。

总而言之:不,没有办法完全实现您想要的(尽管您想要的无论如何都是一种不好的做法,您应该尝试使用不同的解决方案)。

关于python - 在python中跨类更改全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com