"완벽한" 사전 만들기
Python에서 사전과 동일하게 작동하는 사용자 정의 클래스를 만드는 것은 복잡한 작업이 될 수 있습니다. 추상 기본 클래스(ABC)를 사용하여 이를 달성하는 방법은 다음과 같습니다.
MutableMapping ABC 구현
collections.abc 모듈은 MutableMapping을 포함한 다양한 데이터 구조에 대한 ABC를 제공합니다. MutableMapping을 구현하면 dict와 동일한 인터페이스를 가진 객체를 생성할 수 있습니다. 다음은 최소한의 구현입니다.
from collections.abc import MutableMapping class TransformedDict(MutableMapping): def __init__(self, *args, **kwargs): self.store = dict() self.update(dict(*args, **kwargs)) def __getitem__(self, key): return self.store[self._keytransform(key)] def __setitem__(self, key, value): self.store[self._keytransform(key)] = value def __delitem__(self, key): del self.store[self._keytransform(key)] def __iter__(self): return iter(self.store) def __len__(self): return len(self.store) def _keytransform(self, key): return key
키 변환 사용자 정의
_keytransform 메서드를 재정의하여 키에 임의 변환을 적용할 수 있습니다. 예를 들어 소문자 키를 강제로 적용하려면 다음과 같이 하세요.
class MyTransformedDict(TransformedDict): def _keytransform(self, key): return key.lower()
ABC의 이점
ABC를 구현하면 다음과 같은 여러 가지 이점이 있습니다.
요약하면, MutableMapping을 구현하고 _keytransform을 재정의하면 표준 사전의 기능을 유지하면서 맞춤형 키 처리로 사용자 정의 사전을 생성하는 간결하고 효과적인 방법을 제공합니다.
위 내용은 변환된 키를 사용하여 Python에서 사용자 지정 사전을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!