为什么在函数中使用global
时变量的值没有变化。
我错过了什么吗?
class testglobal():
a=2
print(a)
def change():
global a
a = 5
change()
print(a)
答案 0 :(得分:1)
要获取声明的输出,您的代码必须缩进,如下所示:
class testGlobal:
a=2
print(a)
def change():
global a
a = 5
change()
print(a)
在定义类时执行两个print
语句,此时对a
的两个引用都引用类变量a
,而不是global
引用的a
变量change
。
如果您真的对全局变量感兴趣,那么根本不需要这个类。请尝试以下代码:
a = 2
print(a)
def change():
global a
a = 5
change()
print(a)
答案 1 :(得分:0)
首先:如果你的变量在一个类中,那么它不是一个全局变量。 你必须在任何函数/方法/类之外声明它 第二:你班级的认同是错误的。在课堂内,从4个空格或标签开始。