[Python-Dev] chained assignment weirdity

Terry Reedy tjreedy at udel.edu
Wed Nov 7 23:11:40 CET 2012


On 11/7/2012 4:39 PM, Ned Batchelder wrote:
> Just to be clear: the reference guide says that the behavior *SHOULD BE*
> (but is not yet) this:
>> Python 3.3.0
> >>> {print("a"):print("b")}
> a
> b
> {None: None}
> >>> d = {}
> >>> d[print("a")] = print("b")
> b
> a
> >>>
>> Is this or is this not "weird" to you?

Not weird. Expressions and assignment targets are each consistently 
evaluated left to right (except as *necessarily* alter by precedence), 
with expressions evaluated before targets.
What is weird -- to me ;-) -- is using side-effects in either example above.
-- 
Terry Jan Reedy


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /