]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] GH-109190: Copyedit 3.12 What's New: PEP 709 (GH-109656) (#109681)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 Sep 2023 12:56:18 +0000 (05:56 -0700)
committerGitHub <noreply@github.com>
Fri, 22 Sep 2023 12:56:18 +0000 (14:56 +0200)
(cherry picked from commit 22b70ca480f5a2d19d3123cd35ab968fa65f224d)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Doc/whatsnew/3.12.rst

index 3bd9081c793b78c4de6554ef71e97d86727c411d..7f024f6f9960442591b31ef6cb3bc15fe12e1f0a 100644 (file)
@@ -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.
@@ -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: