[Python-Dev] chained assignment weirdity

Ned Batchelder ned at nedbatchelder.com
Wed Nov 7 22:39:28 CET 2012


On 11/7/2012 12:08 PM, Serhiy Storchaka wrote:
> On 07.11.12 17:12, Nick Coghlan wrote:
>> Since you've indicated the implementation is in the wrong here and you
>> also want to preserve opcode semantics, I think Skip's patch is
>> correct, but also needs to be applied to dict comprehensions (now we
>> have them). The extra bytecode is only ROT_TWO, which is one of the
>> cheapest we have kicking around :)
>
> Not only to dict comprehensions, but also to item assignments.  It 
> will be weird if a dict comprehension and a plain loop will be 
> inconsistent.
>
>
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?

--Ned.

> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> http://mail.python.org/mailman/options/python-dev/ned%40nedbatchelder.com
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20121107/2474e3be/attachment.html>


More information about the Python-Dev mailing list