GH-109190: Copyedit 3.12 What's New: PEP 709 (#109656)

This commit is contained in:
Adam Turner 2023-09-21 19:50:33 +01:00 committed by GitHub
parent 869f177b5c
commit 22b70ca480
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 7 deletions

View File

@ -246,14 +246,12 @@ PEP 709: Comprehension inlining
Dictionary, list, and set comprehensions are now inlined, rather than creating a
new single-use function object for each execution of the comprehension. This
speeds up execution of a comprehension by up to 2x.
speeds up execution of a comprehension by up to two times.
See :pep:`709` for further details.
Comprehension iteration variables remain isolated; they don't overwrite a
Comprehension iteration variables remain isolated and don't overwrite a
variable of the same name in the outer scope, nor are they visible after the
comprehension. This isolation is now maintained via stack/locals manipulation,
not via separate function scope.
Inlining does result in a few visible behavior changes:
comprehension. Inlining does result in a few visible behavior changes:
* There is no longer a separate frame for the comprehension in tracebacks,
and tracing/profiling no longer shows the comprehension as a function call.
@ -270,7 +268,7 @@ Inlining does result in a few visible behavior changes:
create a list of keys to iterate over: ``keys = list(locals()); [k for k in
keys]``.
Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.
(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.)
.. _whatsnew312-pep688: