더북(TheBook)

__radd__() 메서드를 구현했습니다(#1). 내부 구현은 __add__() 메서드와 같습니다. 이렇게 구현하면 p2 = 3 + p1 코드를 만나는 순간(#2) 3 + p1p1.__radd__(3)으로 변경합니다. 실행 결과를 보면 연산이 잘 되었습니다.

파이썬은 산술 연산자와 논리 연산자를 비롯해 다양한 연산자 오버로딩 메서드를 제공합니다. 이 책에서는 산술 연산자만 알아보겠습니다. 나머지 메서드는 파이썬 문법 책을 참고하기 바랍니다.

표 7-1 산술 연산자 오버로딩 메서드

메서드

연산자

__add__(self, other)

+

__sub__(self, other)

-

__mul__(self, other)

*

__truediv__(self, other)

/

__floordiv__(self, other)

//


연산자 오버로딩을 할 때는 오버로딩하는 연산자에 의한 연산을 직관적으로 이해할 수 있어야 한다는 점을 주의하세요. 예를 들어 __add__() 메서드를 사용해 연산자 오버로딩을 했는데 함수 내부에서 뺄셈을 구현했다면 이상하겠지요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.