2012-10-17 57 views
0

我想覆盖列表方法并追加2个元素。我怎样才能做到这一点?覆盖列表方法

class LI(list): 
    def append(self, item): 
     self.append(item) 


l = LI([100, 200]) 
l.append(302) 
l.append(402) 

print l 

最终输出:

[100,200,302,302,402,402] 
+1

也许你正在寻找'list.extend'? – FatalError

+1

此代码进入无限递归。 – Ber

+0

'self.extend([item,item])' –

回答

4
class LI(list): 
    def append(self, *args): 
     self.extend(args) 

现在你可以使用它:

a = LI() 
a.append(1,2,3,4) 
a.append(5) 

或者,也许你的意思是:

class LI(list): 
    def append(self, item): 
     list.append(self,item) 
     list.append(self,item) 

但真的,为什么不只是使用一个常规列表和extendappend他们的意图被使用的方式?

a = list() 
a.extend((1,2,3,4)) 
a.append(5) 

a = list() 
item = 1 
a.extend((item,item))