Skip to content

Commit

Permalink
[3.12] GH-109190: Copyedit 3.12 What's New: PEP 709 (GH-109656) (#109681
Browse files Browse the repository at this point in the history
)

(cherry picked from commit 22b70ca)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
  • Loading branch information
miss-islington and AA-Turner authored Sep 22, 2023
1 parent 0015a9a commit 6c8cbb3
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -247,14 +247,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.
Expand All @@ -271,7 +269,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:

Expand Down

0 comments on commit 6c8cbb3

Please sign in to comment.