A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2018-April/152731.html below:

[Python-Dev] PEP 572: Assignment Expressions

[Python-Dev] PEP 572: Assignment ExpressionsGlenn Linderman v+python at g.nevcal.com
Tue Apr 17 12:23:14 EDT 2018
On 4/17/2018 12:46 AM, Chris Angelico wrote:
>      gen = (x for x in rage(10)) # NameError
>      gen = (x for x in 10) # TypeError (not iterable)
>      gen = (x for x in range(1/0)) # Exception raised during evaluation
>
> This brings such generator expressions in line with a simple translation to
> function form::
>
>      def <genexp>():
>          for x in rage(10):
>              yield x
>      gen = <genexp>() # No exception yet
>      tng = next(gen) # NameError
>
> Detecting these errors more quickly is nontrivial. It is, however, the exact
> same problem as generator functions currently suffer from, and this proposal
> brings the genexp in line with the most natural longhand form.
>
>
> Open questions
> ==============
>
> Can the outermost iterable still be evaluated early?
> ----------------------------------------------------
>
> As of Python 3.7, the outermost iterable in a genexp is evaluated early, and
> the result passed to the implicit function as an argument.  With PEP 572, this
> would no longer be the case. Can we still, somehow, evaluate it before moving
> on? One possible implementation would be::
>
>      gen = (x for x in rage(10))
>      # translates to
>      def <genexp>():
>          iterable = iter(rage(10))
>          yield None
>          for x in iterable:
>              yield x
>      gen = <genexp>()
>      next(gen)
>

I think "rage" is supposed to be "range" in four places in the quoted block.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180417/af56c615/attachment.html>
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4