연산자 오버로딩(Operator Overloading)
- 인스턴스 객체끼리의 연산을 위해 기존의 연산자 기능을 중복하여 정의한다.
class Cal:
def __init__(self, num):
self.num = num
n = Cal(1)
n + 1
# TypeError: unsupported operand type(s) for +: 'num' and 'int'
# 지원하지 않는 연산자 타입이라 나온다.
위와 같이 지원하지 않는 연산자 타입을 인스턴스 객체가 서로 연산할 수 있게 다시 정의한다.
class Cal:
def __init__(self, num):
self.num = num
def __add__(self, num): # + 연산자를 정의한다.
self.num += num
n = Cal(1)
n + 1
# 2
파이썬에서 각 연산자마다 메소드를 준비해놓았으니 살펴보고 활용하면 된다.
'파이썬 > 3. 객체지향 프로그래밍' 카테고리의 다른 글
파이썬 메서드 오버라이딩(Method Overriding)과 다형성(Polymorphism) (0) | 2020.04.28 |
---|---|
파이썬 클래스 상속, 합성과 통합 (0) | 2020.04.28 |
파이썬 캡슐화와 정보은닉 (0) | 2020.04.28 |
파이썬 클래스, 멤버, 메서드 (0) | 2020.04.28 |
파이썬 객체지향 프로그래밍 (0) | 2020.04.28 |