类实例属性似乎不会初始化

时间:2013-11-02 19:35:06

标签: python class oop instance instance-variables

这似乎是一个简单的问题,但似乎没有解决我的特定问题的答案,这就是为什么 init 方法永远不会实际启动类实例变量& #39; 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实例没有属性' listlist'

当“添加者”出现时,错误会追溯到第5行。方法尝试将项目添加到明显不存在的列表列表中。实例变量。

我已多次检查缩进但看起来似乎是合理的。我的Python安装有问题吗?我正在使用Python v2.7.5(尚未获得2.7.6)和Spyder IDE v2.2.0

1 个答案:

答案 0 :(得分:2)

Python特殊方法在开头和结尾使用两个下划线;您需要为初始值设定项__init__命名,而不是_init_

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

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