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'</>