본문 바로가기

파이썬/3. 객체지향 프로그래밍

파이썬 연산자 오버로딩(operator overloading)

연산자 오버로딩(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

 

파이썬에서 각 연산자마다 메소드를 준비해놓았으니 살펴보고 활용하면 된다.