Re: [Python-Dev] The new and improved PEP 572, same great taste with 75% less complexity!

2018年4月26日 08:23:53 -0700

On Fri, Apr 27, 2018 at 1:07 AM, Guido van Rossum <[email protected]> wrote:
> Just as I feared. While currently fixing this is just fixing a bug (nobody's
> code is going to break except perhaps some tests), with PEP 572 fixing this
> would be mandatory.
>
> On Thu, Apr 26, 2018 at 6:57 AM, Nick Coghlan <[email protected]> wrote:
>>
>> On 25 April 2018 at 18:23, Chris Angelico <[email protected]> wrote:
>> >>>> x={print(2): print(1) for _ in [1]}
>> > 1
>> > 2
>> >
>> > Hmmmmmmmmm. One of these is not like the others...
>>
>> Huh, it looks like we missed checking dict comprehensions when we
>> fixed dict displays to evaluate keys before the corresponding values.
>> That would qualify as a reasonable request for improvement in Python
>> 3.8 :)
It's deliberate code in compile.c:
 case COMP_DICTCOMP:
 /* With 'd[k] = v', v is evaluated before k, so we do
 the same. */
 VISIT(c, expr, val);
 VISIT(c, expr, elt);
 ADDOP_I(c, MAP_ADD, gen_index + 1);
 break;
So if it's a bug, it's still a deliberate bug. :)
ChrisA
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to