>백엔드 개발 >파이썬 튜토리얼 >Python에서 점 표기법을 사용하여 사전 멤버에 어떻게 액세스할 수 있나요?

Python에서 점 표기법을 사용하여 사전 멤버에 어떻게 액세스할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 12:06:03918검색

How Can You Access Dictionary Members Using Dot Notation in Python?

사전 멤버에 대한 점 표기법 액세스

기존 색인 생성(예: mydict['val'])을 사용하여 사전 멤버를 조작하는 것은 때때로 번거로울 수 있습니다. 이 질문은 점 표기법(예: mydict.val)을 활성화하여 사전 접근성을 향상시키는 방법을 다룹니다. 또한 유사한 방식으로 중첩 사전에 액세스하기 위한 솔루션을 찾습니다.

점 표기법 액세스를 달성하는 열쇠는 내장 dict 클래스에서 상속되는 사용자 정의 클래스를 만드는 데 있습니다. __getattr__, __setattr__ 및 __delattr__ 메서드를 정의하면 속성 액세스, 설정 및 삭제 작업을 가로채서 기본 사전으로 리디렉션할 수 있습니다. 다음은 이러한 클래스의 예입니다.

class dotdict(dict):
    """dot.notation access to dictionary attributes"""
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__

사용 방법을 보여주기 위해 샘플 사전을 만들어 보겠습니다.

mydict = {'val': 'it works'}

이제 dotdict 클래스를 사용하여 이 사전을 래핑할 수 있습니다.

mydict = dotdict(mydict)

이 변환을 통해 점 표기법을 사용하여 사전 멤버에 액세스할 수 있습니다.

mydict.val
# 'it works'

또한 dotdict 인스턴스의 추가 레이어를 생성하여 이 개념을 중첩 사전으로 확장할 수 있습니다. 예를 들어 mydict 내에 중첩된 사전을 생성하고 여러 수준의 점 표기법을 통해 액세스할 수 있도록 할 수 있습니다.

nested_dict = {'val': 'nested works too'}
mydict = dotdict(mydict)
mydict.nested = dotdict(nested_dict)

이제 일련의 점을 사용하여 깊이 중첩된 사전의 값에 액세스할 수 있습니다.

mydict.nested.val
# 'nested works too'

위 내용은 Python에서 점 표기법을 사용하여 사전 멤버에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.