<br><br><div class="gmail_quote">El 31 de enero de 2011 22:25, Jose Caballero <span dir="ltr">&lt;<a href="mailto:jcaballero.hep@gmail.com">jcaballero.hep@gmail.com</a>&gt;</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 = {&#39;a&#39;:&#39;A&#39;,&#39;b&#39;:&#39;B&#39;}<br>        def __setattr__(self, var, value):      <br>                print &#39;invoking __setattr__ &#39;, 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[&#39;a&#39;]=&#39;AA&#39;<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>