From 1aefc2d205b8235fce170ef8c7e03daca11bd392 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:50:33 +0100 Subject: [PATCH] GH-109190: Copyedit 3.12 What's New: PEP 709 (#109656) --- Doc/whatsnew/3.12.rst | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 6b4ec99b43dea61..9caf9c188565039 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -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: