0

这似乎是一个简单的问题,但似乎没有任何答案可以解决我的特定问题,这就是为什么init方法从未真正启动类实例变量“listlist”的原因。

class PointsList():
    def _init_(self):        
        self.listlist = [None]
    def addtolist(self,item):
        self.listlist.append(item)              
    def getlist(self):
        return self.listlist


a = PointsList()
a.addtolist('Scarlet')
print a.getlist()

运行上面的代码给了我: AttributeError: PointsList instance has no attribute 'listlist'

当 'addtolist' 方法尝试将项目添加到明显不存在的 'listlist' 实例变量时,该错误被跟踪到第 5 行。

我已经检查了很多次缩进,但它似乎是正确的。我的 Python 安装有问题吗?我正在使用 Python v2.7.5(还没有到 2.7.6)和 Spyder IDE v2.2.0

4

1 回答 1

2

Python 特殊方法在开始和结束处使用两个下划线;您需要命名初始化程序__init__,而不是_init_

class PointsList():
    def __init__(self):        
        self.listlist = [None]

下划线字符通常显示为连接起来形成一条较长的线,但在 之前有两个下划线init,在之后有两个下划线。

于 2013-11-02T19:37:22.600 回答