[Python-es] ¿ __setattr__() no se invoca para reescribir un par (key,value) en un diccionario dentro de una clase?
Manuel Albarran Guerrero
weap88 en gmail.com
Mar Feb 1 03:14:08 CET 2011
El 31 de enero de 2011 22:25, Jose Caballero <jcaballero.hep en gmail.com>escribió:
> Hola,
>
> perdón por el subject, es un poco críptico. Intento explicarlo...
>
> Sea una clase C como la siguiente
>
> ----------------------------------------------------------------------
> class C:
> def __init__(self):
> self.x = 0
> self.d = {'a':'A','b':'B'}
> def __setattr__(self, var, value):
> print 'invoking __setattr__ ', var, value
> self.__dict__[var] = value
> ----------------------------------------------------------------------
>
> Si ahora escribimos un código como
>
> obj = C()
>
> Sin embargo no veo una línea similar si ahora escribo
>
> obj.d['a']='AA'
>
> ¿Por qué?
>
>
Porque el método al que se esta llamando para realizar esa operación no es
__setattr__ sino __setitem__
--
Manuel Albarrán Guerrero
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110201/b1bcd822/attachment.html>
Más información sobre la lista de distribución Python-es