Skip to content

Commit

Permalink
pythonGH-109190: Copyedit 3.12 What's New: PEP 709 (python#109656)
Browse files Browse the repository at this point in the history
  • Loading branch information
AA-Turner authored and Glyphack committed Jan 27, 2024
1 parent 5f8acc8 commit 1aefc2d
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 @@ -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.
Expand All @@ -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:

Expand Down

0 comments on commit 1aefc2d

Please sign in to comment.