mirror of https://github.com/python/cpython
GH-109190: Copyedit 3.12 What's New: PEP 709 (#109656)
This commit is contained in:
parent
869f177b5c
commit
22b70ca480
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in New Issue