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() Se genera el siguiente output invoking __setattr__ x 0 invoking __setattr__ d {'a': 'A', 'b': 'B'} Que corresponde a las dos asignaciones que aparecen en el __init__() Perfecto. ---------------------------------------------------------------------- Si además hacemos algo como obj.x = 1 obtenemos una nueva línea en el output invoking __setattr__ x 1 ---------------------------------------------------------------------- Sin embargo no veo una línea similar si ahora escribo obj.d['a']='AA' ¿Por qué?
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/