Passing self to a generic function that accepts Self
Offen
Dieses Issue hat noch niemand übernommen.
bug
topic-self-types
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 54
Beschreibung
from typing import Generic, Self, TypeVar
T = TypeVar('T')
class X(Generic[T]):
def f(self, t: T) -> None:
pass
class Y:
def g(self) -> None:
X[Self]().f(self) # error: Argument 1 to "f" of "X" has incompatible type "Y"; expected "Self" [arg-type]
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 die Python-Reproduktion im Issue als Einstiegspunkt und führe mypy dagegen aus, um die arg-type-Diagnose zu bestätigen. Verfolge, wie Self für X[Self] aufgelöst wird und wie der Aufruf von f geprüft wird; abgeschlossen ist die Aufgabe, wenn dieser gültig wirkende Aufruf ohne den incompatible-type-Fehler akzeptiert wird und ein Regressionstest den Fall abdeckt.
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