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
しかし、これらのどれも機能しません。(1 つ目は元の辞書を破棄し、2 つ目は SyntaxError を生成します)
更新:
2 番目の定義は実際に機能します。忘れていたのでうまくいきませんでしたdef
。dict.update が None を返すため、最初のものは機能しません。