x좌표와 y좌표를 인스턴스 멤버로 가지는 Point 클래스를 정의한 다음 좌표가 (2, 2)인 p1 객체를 만듭니다. p1에 숫자 3을 더하여 p2 객체를 만들었는데(#1), 이 코드를 실행하면 Point 객체와 int 객체 사이는 덧셈을 할 수 없다는 오류가 나옵니다.
두 객체 사이를 연산할 수 있도록 수정해 봅시다.
코드 7-17 oop2/oop2_4/point_2.py ①
class Point: (중략) # 더하기 연산자(+) 오버로딩 def _ _add__(self, n): #1 x = self.x + n y = self.y + n return Point(x, y) if __name__= ="__main__": p1 = Point(2, 2) p2 = p1 + 3 #2 # 코드 7-18을 위한 코드 # 실행하면 오류가 납니다 # p2 = 3 + p1 #3 print(p2)
실행결과 (5, 5)