<div dir="ltr">not discompile (ick) meant disassemble.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 1, 2013 at 10:53 PM, Jeff Hinrichs - DM&T <span dir="ltr"><<a href="mailto:jeffh@dundeemt.com" target="_blank">jeffh@dundeemt.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><font face="courier new, monospace">Python 2.7.3 (default, Aug  1 2012, 05:14:39) </font></div><div>
<font face="courier new, monospace">[GCC 4.6.3] on linux2</font></div><div><font face="courier new, monospace">Type "help", "copyright", "credits" or "license" for more information.</font></div>

<div><font face="courier new, monospace">>>> def foo():</font></div><div><font face="courier new, monospace">...    a = {}</font></div><div><font face="courier new, monospace">...    a['a'] = a[a['a']] = 'b'</font></div>

<div><font face="courier new, monospace">...    return a</font></div><div><font face="courier new, monospace">... </font></div><div><font face="courier new, monospace">>>> import dis</font></div><div><font face="courier new, monospace">>>> dis.dis(foo)</font></div>

<div><font face="courier new, monospace">  2           0 BUILD_MAP                0</font></div><div><font face="courier new, monospace">              3 STORE_FAST               0 (a)</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">  3           6 LOAD_CONST               1 ('b')</font></div><div><font face="courier new, monospace">              9 DUP_TOP             </font></div><div><font face="courier new, monospace">             10 LOAD_FAST                0 (a)</font></div>

<div><font face="courier new, monospace">             13 LOAD_CONST               2 ('a')</font></div><div><font face="courier new, monospace">             16 STORE_SUBSCR        </font></div><div><font face="courier new, monospace">             17 LOAD_FAST                0 (a)</font></div>

<div><font face="courier new, monospace">             20 LOAD_FAST                0 (a)</font></div><div><font face="courier new, monospace">             23 LOAD_CONST               2 ('a')</font></div><div><font face="courier new, monospace">             26 BINARY_SUBSCR       </font></div>

<div><font face="courier new, monospace">             27 STORE_SUBSCR        </font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">  4          28 LOAD_FAST                0 (a)</font></div>

<div><font face="courier new, monospace">             31 RETURN_VALUE        </font></div><div><br></div><div>-Jeff</div><div>slightly modified to make easier to discompile</div></div><div class="gmail_extra"><div><div class="h5">

<br><br><div class="gmail_quote">On Mon, Apr 1, 2013 at 10:50 PM, Brantley Harris <span dir="ltr"><<a href="mailto:deadwisdom@gmail.com" target="_blank">deadwisdom@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div>So it evaluates the right, then left to right.  That's strange.</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 1, 2013 at 10:46 PM, Alex Gaynor <span dir="ltr"><<a href="mailto:alex.gaynor@gmail.com" target="_blank">alex.gaynor@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Sorry, I should have been more precise, first the far right hand side is evaluated, so you get the string 'b' (of course). Then the assignments are evaluated left to right.<div>


<br></div><div>So first:</div>
<div><br></div><div>a['a'] = 'b'</div><div><br></div><div>Then </div><div><div><br></div><div>a[a['a']] = 'b'</div><div><br></div></div><div>Now a['a'] == 'b'</div>

<div><br></div><div>so a['b'] = 'b'.</div><span><font color="#888888"><div><br></div><div>Alex</div></font></span></div><div><div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Mon, Apr 1, 2013 at 8:41 PM, Brantley Harris <span dir="ltr"><<a href="mailto:deadwisdom@gmail.com" target="_blank">deadwisdom@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Okay, then it should be a key error:<div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">> a['a'] = a[a['a']]</span><br>



</div></div><div><font face="arial, sans-serif">KeyError: 'a'</font><br>
</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 1, 2013 at 10:25 PM, Alex Gaynor <span dir="ltr"><<a href="mailto:alex.gaynor@gmail.com" target="_blank">alex.gaynor@gmail.com</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The assignments are going left to right.<div><br></div><div>Alex</div></div><div class="gmail_extra"><br>




<br><div class="gmail_quote"><div><div>On Mon, Apr 1, 2013 at 8:24 PM, Brantley Harris <span dir="ltr"><<a href="mailto:deadwisdom@gmail.com" target="_blank">deadwisdom@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div>> a = {}</div>> a['a'] = a[a['a']] = 'b'<br>
<div>{'a': 'b', 'b': 'b'}<br>
</div><div><br></div><div>What the what?  I would think that should KeyError, but it runs fine.  Someone splain.</div>
</div>
<br></div></div>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br>"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)<br>




"The people's good is the highest law." -- Cicero<br>

</font></span></div>
<br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)<br>"The people's good is the highest law." -- Cicero<br>




</div>
</div></div><br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/chicago" target="_blank">http://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br></div></div>Best,<div><br></div><div>Jeff Hinrichs<br><a href="tel:402.218.1473" value="+14022181473" target="_blank">402.218.1473</a><br><br></div>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Best,<div><br></div><div>Jeff Hinrichs<br>402.218.1473<br><br></div>
</div>