<br><br><div class="gmail_quote">El 31 de enero de 2011 22:25, Jose Caballero <span dir="ltr"><<a href="mailto:jcaballero.hep@gmail.com">jcaballero.hep@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hola,<br><br>perdón por el subject, es un poco críptico. Intento explicarlo...<br><br>Sea una clase C como la siguiente<br><br>----------------------------------------------------------------------<br>class C:<br> def __init__(self):<br>
self.x = 0<br> self.d = {'a':'A','b':'B'}<br> def __setattr__(self, var, value): <br> print 'invoking __setattr__ ', var, value<br>
self.__dict__[var] = value<br>----------------------------------------------------------------------<br><br>Si ahora escribimos un código como <br><br>obj = C()<br><br>Sin embargo no veo una línea similar si ahora escribo<br>
<br>obj.d['a']='AA'<br><br>¿Por qué?<br><br></blockquote></div><br clear="all">Porque el método al que se esta llamando para realizar esa operación no es __setattr__ sino __setitem__<div><br><div>-- <br>Manuel Albarrán Guerrero<br>
<br>
</div></div>