Я подклассифицировал dict
и должен обнаружить все его изменения.
(Я знаю, что не могу обнаружить модификацию сохраненного значения на месте. Это нормально.)
Мой код:
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
и т.д.)?