4 연산자 오버로딩


    연산자 오버로딩(operator overloading)은 클래스 안에서 메서드로 연산자를 새롭게 구현하는 것으로 다형성의 특별한 형태입니다. 연산자 오버로딩을 사용하면 다른 객체나 일반적인 피연산자와 연산을 할 수 있습니다. 정의만 보고 이해하기가 쉽지 않으므로 간단한 예제를 만들어 보겠습니다.

    코드 7-16 oop2/oop2_4/point_1.py

    class Point:
        def _ _init__(self, x = 0, y = 0):
            self.x = x
            self.y = y
    
        def set_point(self, x, y):
            self.x = x
            self.y = y
    
        def get_point(self):
            return self.x, self.y
    
        def _ _str__(self):
            return '({x}, {y})'.format(x = self.x, y = self.y)
    
    if __name__= ="__main__":
        p1 = Point(2, 2)
        p2 = p1 + 3               #1
    print(p2)
    

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

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