Skip to content

Commit

Permalink
[3.12] gh-105256: What's New note for comprehension over locals() (GH…
Browse files Browse the repository at this point in the history
…-106378) (#106471)

gh-105256: What's New note for comprehension over locals() (GH-106378)
(cherry picked from commit 13aefd1)

Co-authored-by: Carl Meyer <carl@oddbird.net>
  • Loading branch information
miss-islington and carljm authored Jul 6, 2023
1 parent 7b615a1 commit 1e4c235
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,12 @@ Inlining does result in a few visible behavior changes:
* Calling :func:`locals` inside a comprehension now includes variables
from outside the comprehension, and no longer includes the synthetic ``.0``
variable for the comprehension "argument".
* A comprehension iterating directly over ``locals()`` (e.g. ``[k for k in
locals()]``) may see "RuntimeError: dictionary changed size during iteration"
when run under tracing (e.g. code coverage measurement). This is the same
behavior already seen in e.g. ``for k in locals():``. To avoid the error, first
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`.

Expand Down

0 comments on commit 1e4c235

Please sign in to comment.