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)

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