Hola,
Tengo un objeto 'list' que es creado por una librería externa sobre el
que me gustaría modificar el método 'append'.
He probado lo siguiente:
- Crear mi propio objeto list y sustituirlo en la instancia de la
libreria pero no se deja, produce 'TypeError: readonly attribute'
>>> class modList(list):
... def append(self, value):
... super(CallbackList, self).append(value)
... print "Append:", value
...
>>> libr.lista = modList()
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: readonly attribute
- He intentado modificar el metodo append de la lista pero siempre salta
el error de que el atributo es 'read-only':
>>> def appendHack(self, value):
...
... list.append(self, value)
... print "Append Value:", value
...
>>> l = []
>>> l.append = appendHack
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'list' object attribute 'append' is read-only
>>> l.append = appendHack.__get__(l)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'list' object attribute 'append' is read-only
¿Conocéis alguna forma de modificar el método append de una lista sin
hacer una derivación?
Gracias,
--
Oswaldo
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/