Python 我如何正确地将“a”子类化;迪克特;?
如何编写构造函数,使其将键“Python 我如何正确地将“a”子类化;迪克特;?,python,oop,Python,Oop,如何编写构造函数,使其将键“name”设置为“james” class MyDict(dict): def __init__(self, *args): #fill in here 在(C)Python 2.5.2中: d = MyDict() print d['name'] ....this should print out "james" dict的基本子类将允许基本存储: >>> class MyDict(dict): ... def __
name
”设置为“james
”
class MyDict(dict):
def __init__(self, *args):
#fill in here
在(C)Python 2.5.2中:
d = MyDict()
print d['name'] ....this should print out "james"
dict的基本子类将允许基本存储:
>>> class MyDict(dict):
... def __init__(self, *args, **kwargs):
... super(MyDict, self).__init__(*args, **kwargs)
... self['name'] = 'james'
...
>>> d = MyDict()
>>> print d['name']
james
对于更复杂的存储,您可能需要查看,并且每次我想对dict进行子类化时,我是否应该始终在构造函数中执行“super(MyDict,self)…”?这是一个要求吗?dict.uuu init_uuu(self,*args,**kwargs)也可以工作,但建议使用super()样式。如果您根本不调用dict的init,那么您的对象可能没有一致的状态,因此可能无法像dict那样使用。@wberry,@TIMEX:super()样式是多重继承工作所必需的。
class MyDict(dict):
def __init__(self, *args):
super(MyDict, self).__init__(*args, **kwargs)
self['name'] = 'james'