Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 8, 2010 11:28:36

gkraser
От:
Зарегистрирован: 2007-08-25
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследник от list. Перехват модификации списка

Имеется класс, наследник от list:

class MyList(list):
pass
Нужно отслеживать, что элемент был добавлен/удален. Однако эти операции производятся кучей методов (append, insert, extend, del A ….). И нет единого способа отследить, что элемент был добавлен/удален…. Или все таки есть? Что то не нашел.

Сейчас получается, что нужно перехватывать все методы, влияющие на содержимое списка.



Офлайн

#2 Июнь 8, 2010 11:47:37

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Наследник от list. Перехват модификации списка

Наследоваться следует не от list, а от UserList. Он, собственно для этого и создан.

>>> from UserList import UserList
>>>
Можете попробовать использовать событийную систему какую-нибудь, но в любом случае событие нужно генерировать при любых изменениях в составе списка.



Офлайн

#3 Июнь 8, 2010 11:58:35

gkraser
От:
Зарегистрирован: 2007-08-25
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследник от list. Перехват модификации списка

regall
Наследоваться следует не от list, а от UserList
ок, забыл я про него…

Посмотрел как сделан UserList… Вообщем нет там “единой точки модификации”. Ну не страшно, щас сделаю….



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version