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'</>
이전과 같은 오류가 발생합니다. int와 Point는 순서만 달라졌을 뿐입니다. 이 문제를 해결하고자 연산자 오버로딩을 하나 더 하겠습니다.
코드 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)