2013-05-22 31 views
-3
class database(object): 
    def __init__(self): 
     self.l = [] 


    def insert(self, e): 
     for i in range[len(self.l)]: 
      if i == e: return 
     self.l.append(e) 

爲什麼插入給我一個未綁定的方法可以有人幫助嗎?有人可以幫助我與這個類

+3

'range [len(self.l)]'應該是'range(len(self.l))'。這是否解決了這個問題? – TerryA

+1

@Haidro讓它成爲一個答案。 –

+0

@Haidro明白了,但Python不會引發未綁定的方法異常。也許他在不初始化對象的情況下調用該方法。 – Markon

回答

2

的原因是因爲你的打字錯誤:

range[len(self.l)] 

應該

range(len(self.l)) 

您使用括號()調用函數。括號[]用於列表和其他功能,如切片。

3

你並不需要一個循環那裏,你可以這樣做:

def insert(self, e): 
    if e not in self.l: 
     self.l.append(e) 

或者,如果你只是想確保有沒有重複;使用set,這是一個無序的獨特項目的集合;並且不能有重複項:

>>> s = set() 
>>> s.add(1) 
>>> s.add(2) 
>>> s.add(1) # Note, no error message on duplicate 
>>> s.add(4) 
>>> s 
set([1, 2, 4]) 
相關問題