Python

Python - 특별 메소드, 마술 메소드, 던더 메소드 이해

올엠 2022. 4. 28. 22:15
반응형

Python에서 가장 처음 느끼는 장점이나 특이한 점은 바로 특별 메소드 혹은 마술 메소드 또는 던더 메소드(Dunder, Double unber의 준말, 이하 던더 메소드)라고 불리우는 메소드라고 할 수 있겠다.

이 던더 메소드라는 것은 언더바(_) 두개로 감싼 함수를 의미하는데, Python에서 사전에 지정해 놓은 내장 함수를 사용자가 호출할 수 있다.일 예로 리스트의 개수를 계산해주는 len()라는 함수의 던더 메소드는 __len__() 이다.

 

일반적으로 일반 사용자가 이 던더 메소드를 직접 호출할 경우는 많지 않다.

그럼 여기에서 자주 사용되는 던더 메소드 예를 들어보도록 하겠다. __init__()는 클래스를 초기화하는 내장 함수이다. 아래는 5라는 값을 클래스에 넣을 경우 클래스 초기화 단계에 던더 메소드를 통해 +1을 해주는 아주 간단한 프로그램이다.

class Test:
    def __init__(self, value=0):
        self.value = value + 1

result = Test(5)
print(result)

 

 

이를 사용하여 클래스에 들어오는 값을 self를 이용해 사전에 조정을 할 수 있게 된다. __del__() 내장 함수를 호출해서 변수나 사용한 리소스등을 정리하는 것도 보다 효율적인 프로그램을 작성하는 방법이라 할 수 있겠다.

__init__
__del__

 

이외에도, 프로그램의 시작하는 함수인 __main__()도 자주 사용되는 던더 메소드라고 할 수 있다.

이 던더 메소스에 대해서 자세히 알고 싶다면, 아래 내용을 참고하면 도움이 될 것이다.

A Guide to Python's Magic Methods « rafekettler.com (rszalski.github.io)

반응형