본문 바로가기

컴퓨터/Python

연산자 중복 정의

메서드로 동작 시키지 않고 연산자로 메서드를 동작 시킬 수 있다


>>> 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