2013-05-22 29 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]) 
相关问题