8 good-to-know dunder methods for collections in Python
__init__ 및 __str__ 메서드를 통해 사용자 정의 컬렉션 클래스 CustomList를 초기화하고 문자열 표현을 정의할 수 있습니다. 🛠️
__iter__ 메서드는 사용자 정의 클래스를 반복 가능하게 만들어 for 루프에서 사용할 수 있도록 하며, 어떤 종류의 이터레이터든 반환할 수 있습니다. 🔄
__getitem__ 메서드를 구현하여 인덱스(또는 키)를 통해 요소에 접근하는 방식을 정의하고, 접근 전후에 사용자 정의 로직을 추가할 수 있습니다. 🔍
__setitem__ 메서드를 사용하면 특정 인덱스의 요소를 할당하는 동작을 사용자 정의할 수 있어, 컬렉션의 값을 변경하는 방식을 제어합니다. ✏️
__delitem__ 메서드를 정의하여 특정 인덱스의 요소를 삭제하는 동작을 사용자 정의할 수 있습니다. 🗑️
__contains__ 메서드를 통해 in 연산자를 사용하여 컬렉션 내 특정 항목의 존재 여부를 확인하는 멤버십 검사를 구현할 수 있습니다. ✅
__reversed__ 메서드는 내장 reversed() 함수가 사용자 정의 컬렉션에 대해 어떻게 작동할지 정의하며, 항상 이터레이터를 반환합니다. ⏪
__next__ 메서드는 이터레이터의 다음 값을 반환하는 로직을 정의하고, 더 이상 요소가 없을 경우 StopIteration을 발생시켜 사용자 정의 클래스를 제너레이터처럼 작동하게 합니다. ➡️
__length_hint__ 메서드는 이터레이션에 남은 요소의 예상 개수를 반환하여 최적화에 도움을 주며, __len__이 정의되어 있으면 정확한 값을 제공합니다. 📏