메서드로 동작 시키지 않고 연산자로 메서드를 동작 시킬 수 있다
>>> class GString:
def __init__(self, init=None):
self.content = init
def __sub__(self, str):
for i in str:
self.content = self.content.replace(i,'')
return GString(self.content)
def Remove(self, str):
return self.__sub__(str) << __sub__와 동일한 메서드이기 때문에 재호출
>>> g = GString("ABCDEFGabcdefg")
>>> g.Remove("Adg")
>>> g.content
'BCDEFGabcef'
>>> g - "Bcf"
>>> g.content
'CDEFGabe'
__sub__는 연산자 중복을 위해 미리 정의된 특별한 메서드
명시적으로 중복하지 않은 연산자를 사용하는 경우 TypeError가 발생
'컴퓨터 > Python' 카테고리의 다른 글
다중상속 (0) | 2013.07.18 |
---|---|
상속 (0) | 2013.07.18 |
정적메서드, 클래스메서드 (0) | 2013.07.17 |
생성자, 소멸자 메서드 (0) | 2013.07.16 |
클래스 객체와 인스턴스 객체의 관계 (0) | 2013.07.15 |