在Python中作为类的全局变量列出

问题描述 投票:-1回答:1

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()

当我运行代码时,出现错误“未定义名称'数字'”。如果我将“数字”声明为全局数字,为什么认为未定义?有人可以帮我一个解释吗?谢谢。

python variables global
1个回答
0
投票

要解决范围问题,请在类外部声明变量(使其真正成为全局变量),或将其作为类变量访问,如下所示:

class SomeClass:
  numbers = [4, 6, 8, 2, 10] 

  def incrementNumbers(self):
    for i in SomeClass.numbers:
      i += 1
      print (i)

0
投票

您声明的数字不是全局变量,它是一个类变量。

如果要全局变量,则必须编写:


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()
© www.soinside.com 2019 - 2024. All rights reserved.