object doesn't have an __enter__/__exit__ yet docs say it does

Offen
#97,699 8 Kommentare 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
48/100
Issue-Typ
Dokumentation
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Beginne mit den im Issue verlinkten Abschnitten der Python-Datenmodelldokumentation zu object.enter und object.exit und überprüfe ihre aktuelle Formulierung anhand von Python 3.10.3. Aktualisiere die Dokumentation, um klarzustellen, dass diese Methoden nicht in object definiert sind, und erkläre, dass Kontextmanagerobjekte sie definieren, um die Schnittstelle bereitzustellen; abgeschlossen ist die Aufgabe, wenn das dokumentierte Verhalten mit dem Verhalten zur Laufzeit übereinstimmt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

docs

Documentation

Here's the current docs in the Python data model on object.__enter__:

object.__enter__(self)

And object.__exit__:

object.__exit__(self, exc_type, exc_value, traceback)

However, with Python 3.10.3, we see neither of these methods belong to object:

>>> object.__enter__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'object' has no attribute '__enter__'. Did you mean: '__ne__'?
>>> object.__exit__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'object' has no attribute '__exit__'. Did you mean: '__init__'?

I think the docs could be:

  • More clear that __enter__ and __exit__ are not methods on object
  • Mention where they come from (just being defined within your object to match the interface)

Thank you for your consideration!

Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
Ø Merge
1 T. 9 Std.
Gemergte PRs (30 T.)
558

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

Neue Issues direkt in Ihr Postfach

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