New GitHub issue #118921 from gaogaotiantian:<br>

<hr>

<pre>
# Feature or enhancement

### Proposal:

Per PEP 667, `frame.f_locals` is now a write-through proxy (`FrameLocalsProxy`) for underlying fast local variables. In the beginning we did not implement the `copy()` method because we think `dict(frame.f_locals)` is a more explicit way to achieve the snapshot. However, there are existing code that's using `frame.f_locals.copy()` to take a snapshot. Moreover, `types.MappingProxyType({}).copy()` returns the copy of the underlying mapping so it's not unprecedented for a `proxy.copy()` to return a dict.

Thus, we should implement `copy()` method for `FrameLocalsProxy` and make it return a dict of snapshot of the current local variables.

### Has this already been discussed elsewhere?

I have already discussed this feature proposal on Discourse

### Links to previous discussion of this feature:

https://discuss.python.org/t/pep-667-consistent-views-of-namespaces/46631/26
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/118921">View on GitHub</a>
<p>Labels: type-feature</p>
<p>Assignee: gaogaotiantian</p>