fer*_*ard 1 python global-variables
我正在尝试更改跨类的全局变量。这是我的代码:
文件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()
Run Code Online (Sandbox Code Playgroud)
文件class2.py
a = 1
class second:
def changeA(self):
global a
print a
a += 1
print a
Run Code Online (Sandbox Code Playgroud)
但它返回一个错误:全局名称'a'未定义。有没有适当的方法来访问和更改python中跨文件的全局变量?提前致谢
全局变量在python中不存在。
该global语句实际上是一个错误的语句。这意味着变量是模块的变量。python中没有全局名称空间之类的东西。
如果要从多个模块修改变量,则必须将其设置为属性:
import module
module.variable = value
Run Code Online (Sandbox Code Playgroud)
做一个简单的分配将简单地创建或修改模块的变量。代码
from module import variable
variable = value
Run Code Online (Sandbox Code Playgroud)
只是掩盖了使用该标识符创建新绑定后variable导入的值,但是的值不会更改。modulemodulevariable
总结:没有任何方法可以完全实现您想要的(尽管您想要的仍然是一种不好的做法,您应该尝试使用其他解决方案)。