반응형
파이썬에서 시작과 끝에 언더스코어(_) 2개가 붙은 함수를 본 적 이 있을 것입니다.
밑줄 두개가 뭍은 이 함수를 더블 언더스코어(double underscore) 또는 줄여서 던더(dunder)라고 합니다.
예를 들면 __len__ 이라는 던더 함수가 있을 때, 이를 던더 렌 또는 렌 던더라고 표현합니다.
이 함수는 특별하게 쓰일 수가 있는데요.
예를 들면, 클래스에 __len__()함수를 정의하면 클래스형의 인스턴스를 len()함수에 전달할 수 있게됩니다.
클래스형 인스턴스 obj가 있다고 가정하겠습니다.
인스턴스 obj에 대한 __len()__ 함수를 호출하는 obj.__len__() 은 간단하게 len(obj)로 작성할 수 있습니다.
또 다른 예를 들어보겠습니다.
클래스에 __contains__() 함수를 정의한다면, 클래스형의 인스턴스에 멤버십 판단 연산자인 in을 적용할 수 있습니다.
클래스형 인스턴스 obj에 대한 __contains()__ 함수를 호출하는 obj.__contains__(x) 를 간단하게 x in obj로 작성할 수 있습니다.
반응형
'파이썬 > 자료구조' 카테고리의 다른 글
[python] stack 구현 (고정길이 스택 fixed stack, class 활용) (0) | 2023.03.06 |
---|---|
[Python] append vs extend (list의 append와 extend 차이점) (0) | 2022.12.27 |
[python] 함수 활용 시 매개변수가 뮤터블 vs 이뮤터블 일때.. (0) | 2022.12.19 |