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