2011-07-17 4 views

답변

2

에서 (C) 파이썬 2.5.2 : 딕셔너리의 기본 서브 클래스는 기본 저장하실 수

>>> class MyDict(dict): 
... def __init__(self, *args, **kwargs): 
...  super(MyDict, self).__init__(*args, **kwargs) 
...  self['name'] = 'james' 
... 
>>> d = MyDict() 
>>> print d['name'] 
james 
0

: 더 복잡 저장

class MyDict(dict): 
    def __init__(self, *args): 
     super(MyDict, self).__init__(*args, **kwargs) 
     self['name'] = 'james' 

, 당신이보고 할 수 있습니다 __setitem____getitem__

+0

으로해야합니다. 항상 super (MyDict, self) ...를 생성자에서 수행해야합니다. 독트린을 쓴거야? 요구 사항입니까? – TIMEX

+2

dict .__ init __ (self, * args, ** kwargs)도 작동하지만 super() 스타일을 사용하는 것이 좋습니다. – wberry

+0

dict의 __init__을 전혀 호출하지 않으면 객체의 상태가 일관되지 않을 수 있으며 따라서 dict가 사용 가능하지 않을 수 있습니다. – wberry

관련 문제