[我试图声明一个类变量蠕虫(列表),但是当我尝试在方法add_worms(name)方法中使用它时,它会抛出NameError,如下所示。
>>> class Fruit:
worms = []
def add_worms(self, name):
global worms
worms.qppend(name)
>>> fruit = Fruit()
>>> fruit.add_worms("Crawly")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in add_worms
NameError: name 'worms' is not defined
名称worms
被初始化为类属性,而不是模块级别的全局变量,因此应改为通过方法的self
对象来引用它:
def add_worms(self, name):
self.worms.append(name)
当您在类的全局范围内定义变量时,可以使用self.my_variable
访问它。根据您的情况,将代码更改为:
class Fruits:
worms = []
def add_worms(self,name):
self.worms.append(name)
在您的情况下,您引用的是在类之外定义的变量worms
,但由于此类变量不存在,因此您的代码将失败。