Python无法读取函数中的全局变量,即使我使用了global关键字



我想访问类A中的变量number_of_messages,但即使我使用了global关键字,也会出现"number_of_messages" is not defined错误。这是一个代码示例:

class A:
number_of_messages=0;
def inc(self):
global number_of_messages
number_of_messages+=1

print(A().inc())

改为使用class属性:

class A:
def ___init__(self):
self.number_of_messages=0
def inc(self):
self.number_of_messages+=1
a = A()
print(a.inc())
print(a.number_of_messages)

但你也可以:

number_of_messages = 0
class A():
def inc(self):
global number_of_messages
number_of_messages+=1
a = A()
a.inc()
print(number_of_messages)

您只是忘记在全局范围中声明变量

这不是全局的。这是一个类属性。写入

def inc(self):
A.number_of_messages += 1

你不需要全球声明。

最新更新