Всем привет!
Помогите пожалуйста грамотно написать класс D или ссылку с примерами расширения базовых классов.
class D(dict):
???
a = D({1: 3, 2: ‘x’})
b = D({0: 3, 1: 2, 2: ‘y’})
a += b или a.update(b)
print a
{0:3, 1:5, 2:'xy'}
>>> class D(dict):
... def update(self, d):
... for k in d.keys():
... if k in self:
... self[k] += d[k]
... else:
... self[k] = d[k]
...
>>> a = D({1: 3, 2: 'x'})
>>> b = D({0: 3, 1: 2, 2: 'y'})
>>> a.update(b)
>>> print a
{0: 3, 1: 5, 2: 'xy'}
>>>
class D(dict):
def __iadd__(self, d):
for k in d.keys():
if k in self:
self[k] += d[k]
else:
self[k] = d[k]
return self
a = D({1: 3, 2: 'x'})
b = D({0: 3, 1: 2, 2: 'y'})
a += b
print a
class D(dict):
def __add__(self, d):
res = D(self)
for k in d.keys():
if k in res:
res[k] += d[k]
else:
res[k] = d[k]
return res
a = D({1: 3, 2: 'x'})
b = D({0: 3, 1: 2, 2: 'y'})
a += b
print a