【发布时间】:2012-04-05 03:46:09
【问题描述】:
我想使用 += 符号来更新 Python 中的类 dict 对象。我希望具有与 dict.update 方法相同的行为。这是我的课程(带有“.”访问权限的字典):
class sdict(dict):
def __getattr__(self, attr):
return self.get(attr, None)
__setattr__= dict.__setitem__
__delattr__= dict.__delitem__
我试过了:
__iadd__ = dict.update
还有:
def __iadd__(self, other):
self.update(other)
return self
但这些都不起作用。 (第一个破坏了原来的字典,第二个产生了 SyntaxError)
更新:
第二个定义确实有效。它对我不起作用,因为我忘记了def。第一个不起作用,因为 dict.update 返回 None。
【问题讨论】:
标签: python dictionary operator-overloading