p1 객체와 숫자의 덧셈을 시도했는데(#3) 이번에는 순서가 다릅니다. 숫자가 앞에 위치했습니다. 이 코드도 __add__() 메서드를 호출하는데 연산이 잘 될까요?


    실행결과 Traceback (most recent call last):
       File "F:\source_code\oop2\oop2_3\point_2.py", line 27, in <module>
         p2 = 3 + p1                            #3
    TypeError: unsupported operand type(s) for +: 'int' and 'Point'</>


    이전과 같은 오류가 발생합니다. intPoint는 순서만 달라졌을 뿐입니다. 이 문제를 해결하고자 연산자 오버로딩을 하나 더 하겠습니다.

    코드 7-19 oop2/oop2_4/point_3.py

    class Point:
        (중략)
    
        def _ _radd__(self, n):    #1
            x = self.x + n
            y = self.y + n
            return Point(x, y)
    
    if __name__= ="__main__":
        p1 = Point(2, 2)
        p2 = 3 + p1                 #2
        print(p2)
    

    실행결과 (5, 5)

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