[Python] 매직 메소드

2022. 11. 30. 17:48

 

매직 메소드는 메소드 앞 뒤에 '__'가 붙은 메소드를 뜻한다.

이 외에도 많은 매직 메소드가 존재한다.

 

간단한 예제를 만들어보자.

class Magic():
    def __init__(self, num):
        self._a = num

    def __add__(self, b):
        return self._a + b

a = Magic(1)
print(a+3)

4

 

 

많이 사용하던 생성자도 매직 메소드다.

_a에 다른 값을 더하는 매직 메소드 __add__를 선언했고 +로 사용하였다.

 

원래 1 + 1과 같이 단순히 입력한 값만 더하는 용도로 썼다면

매직 메소드를 이용해 새로운 수식을 적용할 수 있다.

 

__add__가 + 와 매핑되는 것 처럼

__mul__은 *와 매핑되고

객체에 접근하기 위해 사용했던 .(dot) 또한 __getattribute__와 매핑된다.