2009-04-08 5 views
27

나는 플러스 대체 할 __add__ 방법에 대해 알고,하지만 난 대체 할 것을 사용할 때 + =, 나는 두 가지 문제 중 하나와 끝까지 : 다음,파이썬에서 + = 오버로드하는 방법이 있습니까?

(1) __add__ 변이 양상 경우 자기

z = x + y 

은 x가 정말로 돌연변이되기를 원하지 않을 때 x를 돌연변이시킬 것입니다.

(2) __add__z += x 후 다른 개체에 Z와 TMP 지점부터 실행 승없이 뭔가를 반환합니다 다음

tmp = z 
z += x 
z += y 
tmp += w 
return z 

새로운 객체를 반환합니다.

나는 어떤 종류의 .append() 방법을 만들 수 있지만 가능한 경우 +=을 오버로드하는 것이 좋습니다.

+10

RTFM은 멸종 위기에 처한 프로그래머입니다. – tzot

+2

방법으로, 당신은 F'ing M.을보고 있습니다. ;-) –

+0

조쉬는 파이썬의 매뉴얼 작가 중 하나라는 것을 암시합니까? 미안 해요, 당신이 의미하는 바를 이해하지 못하는 것 같습니다, @ BobStein-VisiBone. – tzot

답변

50

예. 객체의 __iadd__ 메서드를 재정의하면 add과 동일한 매개 변수가 사용됩니다. 자세한 내용은 here을 참조하십시오.

+1

+1 : 문서 인용 :-) –

관련 문제