반응형
질문
파이썬 딕셔너리의 멤버에 점 "."을 통해 접근하는 방법은 무엇인가요?
예를 들어, mydict['val']
대신에 mydict.val
로 작성하고 싶습니다.
또한, 이러한 방식으로 중첩된 딕셔너리에 접근하고 싶습니다. 예를 들어
mydict.mydict2.val
는 다음을 가리킬 것입니다.
mydict = { 'mydict2': { 'val': ... } }
답변
항상 이를 유틸 파일에 보관해왔습니다. 여러분은 자신의 클래스에도 mixin으로 사용할 수 있습니다.
class dotdict(dict):
"""dictionary 속성에 대한 점 표기법 접근"""
__getattr__ = dict.get
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
mydict = {'val':'작동합니다'}
nested_dict = {'val':'중첩된 것도 작동합니다'}
mydict = dotdict(mydict)
mydict.val
# '작동합니다'
mydict.nested = dotdict(nested_dict)
mydict.nested.val
# '중첩된 것도 작동합니다'
반응형
댓글