El lun., 31 oct. 2016 a las 16:13, Nicolas lino (<[email protected]>)
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
> [email protected]
> https://mail.python.org/mailman/listinfo/python-es
>
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://blog.ch3m4.org <http://ch3m4.org/blog>
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es