2012-10-17 2 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))