Мое приложение полагается на list
и dict
структуры данных для поддержания текущего состояния. Теперь мне нужно отслеживать, когда элемент добавляется/удаляется из списка или изменения данных dict. Я googled и узнал, что есть collections.abc.Sequence
(для списка) и collections.abc.MutableMapping
(для dict), но они очень ограничены, и результат не может быть использован вместо списка/dict (append
, clear
, ...). Я думал о каком-то прокси-классе, который переадресует вызовы и предоставляет вызовы, которые будут вызываться до/после того, как какой-либо метод будет перенаправлен, но не нашел ничего, что даже выглядит так.Python 3: список крючков и изменения dict
Так что мой вопрос: как я перехватываю мутаторы данных структур? Что-то я не знаю?
Единственный способ, с помощью которого я пришел, - реализовать подкласс списка/dict самостоятельно, затем переопределить 'append',' clear' и т. Д. – zhangxaochen