diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-07-06 00:53:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-06 00:53:30 (GMT) |
commit | 1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278 (patch) | |
tree | b42583b135f7150724802a72cf0243a76c63d5e8 /Doc | |
parent | 7b615a1573b8a119e8ad27915912da745756a547 (diff) | |
download | cpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.zip cpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.tar.gz cpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.tar.bz2 |
[3.12] gh-105256: What's New note for comprehension over locals() (GH-106378) (#106471)
gh-105256: What's New note for comprehension over locals() (GH-106378)
(cherry picked from commit 13aefd175e3c04529251f175c23cb3ed88451fd0)
Co-authored-by: Carl Meyer <carl@oddbird.net>
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/whatsnew/3.12.rst | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index ec13ed5..eba3e22 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -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`. |