[Python-Dev] (name := expression) doesn't fit the narrative of PEP 20

Antoine Pitrou solipsis at pitrou.net
Thu Apr 26 04:36:14 EDT 2018


On Thu, 26 Apr 2018 15:34:17 +1000
Steven D'Aprano <steve at pearwood.info> wrote:

> On Thu, Apr 26, 2018 at 05:22:58PM +1200, Greg Ewing wrote:
> > Łukasz Langa wrote:  
> > >What was its own assignment before
> > >now is part of the logic test. This saves on vertical whitespace but makes
> > >parsing and understanding logic tests harder.  
> > 
> > Another way to say this is that expressions are no longer
> > restricted to being trees, but can be general DAGs, which
> > require more mental effort to understand.  
> 
> Is that right? I presume you mean that there can be cycles in 
> expressions involving binding-expressions. If not, what do you mean?
> 
> Can you give an example of a Python expression, involving PEP 572 
> binding-expressions, that is not a tree but a more general DAG or that 
> contains cycles?

Depends if you mean a graph between names or values?

If between names, you can even have cycles AFAICT:

  ((a: = a + b), (b: = a))

Regards

Antoine.




More information about the Python-Dev mailing list