`ClassVar` cannot be overridden with `Final`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
A typing.ClassVar cannot be overridden with typing.Final.
main.py:7: error: Cannot override class variable (previously declared on base class "Base") with instance variable [misc]
Found 1 error in 1 file (checked 1 source file)
To Reproduce
import typing
class Base:
value : typing.ClassVar[str]
class Derived(Base):
value : typing.Final[str] = 'derived'
https://mypy-play.net/?mypy=latest&python=3.12&flags=verbose&gist=03819c6e8c7b6fb53baebe094faed123
Expected Behavior
I though using a typing.Final annotation would imply typing.ClassVar.
Actual Behavior
It seems not allowed to override a ClassVar with a Final.
Your Environment
See reproducer.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem bereitgestellten Python-Reproducer und verfolge, wie mypy das Überschreiben einer ClassVar mit einer Final-Annotation behandelt. Bestätige das beabsichtigte Typing-Verhalten und füge eine Abdeckung für diesen Fall hinzu; abgeschlossen ist die Aufgabe, wenn der Reproducer den falschen Überschreibungsfehler nicht mehr meldet und die bestehenden Prüfungen weiterhin erfolgreich sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100