2013-11-02 156 views
0

这似乎是一个这样一个简单的问题,但似乎没有任何解决我的特定问题的答案,这就是为什么方法永远不会实际启动类实例变量'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当“addtolist”方法试图将项添加到明显不存在'listlist'实例变量。

我检查压痕很多次,但它似乎是合理的。我的Python安装有问题吗?我正在使用Python v2.7.5(还没有到2.7.6)和Spyder IDE v2.2.0

+3

它的'__init__'不是'_init_'。 –

回答

2

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

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

下划线通常所示连接起来形成一个较长的线路,但也有强调init之前,二经。

+0

非常感谢,我担心这是愚蠢和简单的事情。 – user2948422

+0

非常感谢Martijn。我仍然感到很傻,虽然哈哈我想知道为什么我的应用程序中的某些类在我重写了它们之后遇到了与此相关的问题。我想我只是用了一个下划线而没有想到。 – user2948422