[Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part) (original) (raw)
Tim Peters tim.peters at gmail.com
Thu Jun 28 02:31:04 EDT 2018
- Previous message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Next message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Chris Barker]
... So what about:
l = [x:=i for i in range(3)] vs g = (x:=i for i in range(3)) Is there any way to keep these consistent if the "x" is in the regular local scope?
I'm not clear on what the question is. The list comprehension would bind l
to [0, 1, 2] and leave the local x
bound to 2. The second example
binds g
to a generator object, which just sits there unexecuted. That
has nothing to do with the PEP, though.
If you go on to do, e.g.,
l = list(g)
then, same as the listcomp, l
will be bound to [0, 1, 2] and the local
x
will be left bound to 2.
The only real difference is in when the x:=i for i in range(3)
part
gets executed. There's no new twist here due to the PEP. Put a body B in
a listcomp and any side effects due to executing B happen right away, but
put B in a genexp and they don't happen until you force the genexp to yield
results.
For example, do you think these two are "consistent" today?
l = [print(i) for i in range(3)] g = (print(i) for i in range(3))
? If so, nothing essential changes by replacing "print(i)" with "x := i" - in either case the side effects happen when the body is executed.
But if you don't think they're already consistent, then nothing gets less consistent either ;-) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180628/89b72375/attachment.html>
- Previous message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Next message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]