Tycho Andersen wrote:
On Fri, Jun 24, 2011 at 12:14:27AM -0700, Ethan Furman wrote:
The example given to me when I had this question:
--> x = x['huh'] = {}
--> x
{'huh': {...}}
As you can see, the creation of the dictionary is evaluated, and
bound to the name 'x'; then the key 'huh' is set to the same
dictionary.
Can you please elaborate? I really don't understand how this works at
all. I would have expected a NameError from this (obviously my mental
model is wrong).
This single line is equivalent to:
x = {}
x['huh'] = x
...but I don't understand how python's evaluation semantics get from
the one liner to the two liner/result at all.
\t
Think of it this way:
x = x['huh'] = {}
obj = {} # RHS evaluated first (and only once)
x = obj # then first LHS
x['huh'] = obj # then second LHS, etc
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list