[Python-es] Hackear objeto list

Nekmo contacto en nekmo.com
Dom Sep 18 00:31:10 CEST 2011


Para este tipo de cosas está la clase UserList:
http://docs.python.org/library/userdict.html?highlight=userlist#UserList.UserList

La cual para compatibilidad con Python 3.x, yo importo así:
import sys
if sys.version_info < (3,0):
    from UserDict import UserDict
    from UserList import UserList
else:
    from collections import UserDict, UserList

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: contacto en nekmo.com
XMPP/Jabber: contacto en nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 17 de septiembre de 2011 21:48, Jose Caballero
<jcaballero.hep en gmail.com> escribió:
>
>
> El 17 de septiembre de 2011 14:47, Oswaldo <listas en soft-com.es> escribió:
>>
>> El 17/09/2011 20:20, Jose Caballero escribió:
>>>
>>>
>>> El 17 de septiembre de 2011 06:19, Oswaldo <listas en soft-com.es
>>> <mailto:listas en soft-com.es>> escribió:
>>>
>>>    Hola,
>>>
>>>    Tengo un objeto 'list' que es creado por una librería externa sobre
>>>    el que me gustaría modificar el método 'append'.
>>>
>>>
>>>
>>>
>>> class List(list):
>>>         def append(self, value):
>>>                 super(List, self).append(value)
>>>                 print 'append ', value
>>>
>>>
>>
>> Gracias por responder, pero como ya comentaba esta solución no me vale ya
>> que al intentar sustituir la lista original con una instancia de esta clase
>> genera un error:
>>
>> L = List()
>> >>> libr.lista = L
>> Traceback (most recent call last):
>>  File "<input>", line 1, in <module>
>> TypeError: readonly attribute
>>
>
>
>
> quizas si nos muestras el codigo de libr podemos ayudar mejor.
> Tienes sobreescrito __setattr__?
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


Más información sobre la lista de distribución Python-es