Python问题在这里。我不明白为什么将列表用作类中的全局变量时会出现错误。这是我的代码:
class SomeClass:
numbers = [4, 6, 8, 2, 10]
def incrementNumbers(self):
global numbers
for i in numbers:
i += 1
print (i)
someObject = SomeClass()
someObject.incrementNumbers()
当我运行代码时,出现错误“未定义名称'数字'”。如果我将“数字”声明为全局数字,为什么认为未定义?有人可以帮我一个解释吗?谢谢。
要解决范围问题,请在类外部声明变量(使其真正成为全局变量),或将其作为类变量访问,如下所示:
class SomeClass:
numbers = [4, 6, 8, 2, 10]
def incrementNumbers(self):
for i in SomeClass.numbers:
i += 1
print (i)
您声明的数字不是全局变量,它是一个类变量。
如果要全局变量,则必须编写:
numbers = [4, 6, 8, 2, 10]
class SomeClass:
def incrementNumbers(self):
global numbers
for i in numbers:
i += 1
print (i)
someObject = SomeClass()
someObject.incrementNumbers()