Document FrameLocalsProxy behaviour quirks

Offen Anfängerfreundlich
#125,731 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
88/100
Issue-Typ
Dokumentation
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Beginne mit dem Abschnitt zu Frame-Objekten in der Dokumentation des Python-Datenmodells und prüfe PEP 667 einschließlich des verlinkten PEP-Pull-Requests. Füge einen vierten Unterabschnitt hinzu, der die fünf aufgeführten Verhaltensweisen von FrameLocalsProxy beschreibt, sowie einen See-also-Link zurück zu PEP 667. Als erledigt gilt die Aufgabe, wenn die Hauptdokumentation die Proxy-Identität, gemeinsam genutzte zusätzliche Schlüssel, nicht löschbare lokale Variablen und APIs, die Dicts erzeugen, erklärt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

3.13 3.14 docs triaged

Following PEP 667, https://docs.python.org/dev/reference/datamodel.html#frame-objects mentions that frame.f_locals may be a write-through proxy object, but doesn't really explain what that means.

Once https://github.com/python/peps/pull/3845 lands PEP 667 will contain such a description, but the main docs should at least cover the key behaviours:

  • new instance on every attribute access
  • two proxies with the same keys and values will still be unequal if they refer to different frames
  • extra keys can be stored and are stored on the frame itself so they're shared across all proxies for the same frame
  • keys corresponding to local variables can't be deleted
  • .copy() (and any other API that produces a new container) returns a regular dict instance

Suggested location would be as a new 4th subsection under the frame objects section linked above. A "see also" from that new subsection back to PEP 667 would also be a useful addition.

Linked PRs
  • gh-157869
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
Ø Merge
1 T. 10 Std.
Gemergte PRs (30 T.)
560

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.