Confusing error when subclassing `var.__class__`
Offen
Dieses Issue hat noch niemand übernommen.
bug
topic-runtime-semantics
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Consider this example:
x: int = 1
class X(x.__class__):
# Name "x.__class__" is not defined
# Class cannot subclass "__class__" (has type "Any")
pass
Name "x.__class__" is not defined is confusing. Why x.__class__ is considered a name? I suggest removing this error in this case.
My Environment
mypy 0.961 (compiled: no)- no command-line flags, no config file
CPython 3.10.4- Windows 10
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
Verwende das Python-Beispiel im Issue als Reproducer und verfolge, wie der Type Checker einen Attributausdruck behandelt, der als Klassenbasis verwendet wird. Bestätige die derzeit für x.__class__ gemeldete Diagnose, passe anschließend das Verhalten so an, dass dieser verwirrende Namensfehler in diesem Fall entfernt wird, und überprüfe, dass das Beispiel ihn nicht mehr erzeugt.
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
- 35/100