더북(TheBook)

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)

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