본문 바로가기
Python

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

by 올엠 2022. 4. 28.
반응형

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)

반응형