__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__() 메서드를 사용해 연산자 오버로딩을 했는데 함수 내부에서 뺄셈을 구현했다면 이상하겠지요.

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