Skip to main content
 首页 » 编程设计

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

2025年05月04日14webabcd

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

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

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