python / python/mypy

With a new syntax generic function, `T` cannot be used to set a default value to a parameter with `cast()` while `T` can be used for a parameter and return type

Offen
#20,399 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug pending
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

*Memo:
mypy --strict test.py
mypy 1.19.0
Python 3.14.0
Windows 11

With a new syntax generic function, T cannot be used to set a default value to a parameter with cast() while T can be used for a parameter and return type as shown below:

from typing import cast

                      # ↓ Error
def func[T](x: T = cast(T, 100)) -> T:
    return x # ↑ No error         # ↑ No error

error: Name "T" is not defined

If I don't use T with cast(), other error occurs as shown below:

                 # ↓↓↓ Error
def func[T](x: T = 100) -> T:
    return x

error: Incompatible default for argument "x" (default has type "int", argument has type "T")

Beitragsleitfaden

Beitragsleitfaden öffnen

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 test.py-Reproducer und führe ihn mit mypy --strict unter den gemeldeten Versionen mypy 1.19.0 und Python 3.14.0 aus. Verfolge, wie die neue Syntax für generische Funktionen T im an cast() übergebenen Standardausdruck verarbeitet. Als erledigt gilt die Aufgabe, wenn das Beispiel den auf cast basierenden Standardwert akzeptiert und dabei das bestehende Verhalten von Parameter- und Rückgabetyp beibehält.

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

Neue Issues direkt in Ihr Postfach

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