[Python-es] Extendiendo de dict
Chema Cortes
pych3m4 en gmail.com
Mar Nov 1 08:37:45 EDT 2016
El lun., 31 oct. 2016 a las 16:13, Nicolas lino (<nicolaslino1 en gmail.com>)
escribió:
>
> Buenas.
>
> Tengo una duda. Estoy armando una clase, que extiende de dict, la idea es
> agregar una funcionalidad mas para editar el diccioario.
>
>
> class TestObject(dict):
>
> def __init__(self, init={}):
> dict.__init__(self, init)
> self._setMessage()
>
> def _setMessage(self):
> self = self['message']
>
>
> La idea es tomar solo una parte del message en el init. El tema es que no
> se como hacer el override del objeto. el self = self['message'] no estaria
> funcionando para re escribir el objeto.
>
> Alguien sabe si es correcto lo que estoy queriendo hacer? O en que le
> estoy errando?
>
Contrariamente a la intiuición, los diccionarios se inicializan al crear la
instancia, en lo que sería el método __new__:
class TestObject(dict):
def __new__(cls, init={}):
message = init.pop("message", {})
self = super().__new__(cls, init)
self.message = message
return self
>
>
> Muchas gracias.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://blog.ch3m4.org <http://ch3m4.org/blog>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20161101/78dfc2ac/attachment.html>
Más información sobre la lista de distribución Python-es