2
Pythonでdict-likeオブジェクトを更新するために+ =表記を使用したいと思います。私はdict.updateメソッドと同じ動作をしたい。ここに私のクラスである(と辞書がアクセス ""):overload + = Pythonのマッピングタイプ
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
が、どれも。 (最初のものは元の辞書を破壊し、2番目のものはSyntaxErrorを生成します)
更新:
第2の定義は実際に動作します。 def
を忘れてしまったので、私にとってはうまくいかなかった。 dict.updateがNoneを返すため、最初のものは動作しません。
Augh、それに私を打ち負かします!ここで、私の貴重な+1を持ってください – Blender
おっと...それは愚かだった...答えてくれてありがとう! '__iadd__ = dict.update'がうまくいかない理由は何ですか? – user1084871
'dict.update' returnなし – Dikei