私はdict
をサブクラス化し、すべての変更を検出する必要があります。dictの変更を検出する方法は?
(私が格納された値自体の変更を検出することはできません知っているそれはOKです。)
マイコード:
def __setitem__(self, key, value):
super().__setitem__(key, value)
self.modified = True
def __delitem__(self, key):
super().__delitem__(key)
self.modified = True
を問題はそれだけで簡単な割り当てや削除のために働くです。 pop()
,popitem()
,clear()
およびupdate()
によって行われた変更は検出されません。
__setitem__
および__delitem__
は、アイテムの追加または削除時にバイパスされるのはなぜですか?これらのメソッド(pop
など)も再定義する必要がありますか?
私はここに関連する質問を見つけました:http://stackoverflow.com/questions/7148419/subclass-dict-userdict-dict-or-abc – VPfB