Maybe the order for d[k] = v should also be reconsidered?

On Thu, Apr 26, 2018, 08:23 Chris Angelico <ros...@gmail.com> wrote:

> On Fri, Apr 27, 2018 at 1:07 AM, Guido van Rossum <gu...@python.org>
> 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 <ncogh...@gmail.com>
> wrote:
> >>
> >> On 25 April 2018 at 18:23, Chris Angelico <ros...@gmail.com> 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
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/guido%40python.org
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
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