2013-11-02 78 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