python / python/typing

Clarification: interaction between `@property` and `@final`

Offen
#2,336 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

topic: typing spec
Vorherrschende Sprache
Python
Sterne
1.8k
Forks
302
Ø Merge
23 Std.
Gemergte PRs (30 T.)
8

Beschreibung

The spec for @final says:

The method decorator version may be used with all of instance methods, class methods, static methods, and properties.

and it made me wonder how exactly final interacts with property. There are no conformance tests exercising this specific interaction.

From carefully reading the spec, it seems like the only effect of @final on a property is to prevent it from being overridden in a child class, and that decorating a property with @final does not cause it to be read-only or disallow a setter.

Is my understanding correct? If so, does it make sense to add a clarification to the spec that the decorator does not make a property read-only?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Abschnitt @final der Typing-Spezifikation und überprüfe vorhandene Konformitätstests für Eigenschaften, Setter und Vererbung. Abgeschlossen ist die Aufgabe, wenn die Spezifikation klar festlegt, wie @final auf Eigenschaften angewendet wird, und, falls angemessen, ein Konformitätstest das beabsichtigte Verhalten festhält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
documentation, testing-qa
Issue-Typ
Dokumentation
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

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