2009-04-01 4 views
1

Я хочу добавить событие в список, чтобы при добавлении элементов дела выполнялись на основе элемента, например. изменение новых структур данных, изменение выходных данных экрана или повышение исключения.Добавить событие в список

Как это сделать?

ответ

1

Вы можете создать свой собственный класс, который расширяет список объектов:

class myList(list): 
    def myAppend(self, item): 
     if isinstance(item, list): 
      print 'Appending a list' 
      self.append(item) 
     elif isinstance(item, str): 
      print 'Appending a string item' 
      self.append(item) 
     else: 
      raise Exception 

L = myList() 
L.myAppend([1,2,3]) 
L.myAppend('one two three') 
print L 

#Output: 
#Appending a list 
#Appending a string item 
#[[1, 2, 3], 'one two three'] 
+0

+1 ... но нет необходимости вызывать метод «myAppend» ... с помощью обычного имени метода Append, вероятно, лучше, просто вызовите суперкласс, чтобы реализовать фактическое добавление –

Смежные вопросы