gh-105256: What's New note for comprehension over locals() (#106378)

This commit is contained in:
Carl Meyer 2023-07-05 18:12:21 -06:00 committed by GitHub
parent 104d7b760f
commit 13aefd175e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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`.