Python: Type Hints und mypy
Kurz: Type Hints (Typannotationen) schreiben in Python die erwarteten Typen von Parametern, Rückgabewerten und Variablen in den Code. Python führt sie nicht aus, aber Werkzeuge wie mypy und Editoren prüfen sie.
Genauer: Python bleibt dynamisch typisiert. Die Hinweise dienen Menschen und Werkzeugen: bessere Autovervollständigung, frühe Fehlermeldungen, lesbarere Schnittstellen.
Im Detail
- Grundform:
def preis(netto: float, steuer: float = 0.19) -> float:undname: str = "Anna". - Container:
list[int],dict[str, float],tuple[int, str],set[str](ab Python 3.9 direkt, vorhertyping.Listusw.). - Optional und Vereinigung:
str | None(ab 3.10) oderOptional[str]. Sagt: kannNonesein, daher vor der Nutzung prüfen. - Weitere:
Callable[ [int], str ]für Funktionen,TypedDictfür Dictionaries mit festen Schlüsseln,Protocolfür strukturelle Schnittstellen („Enten-Typisierung” mit Prüfung),Anyals Ausstieg. - mypy:
mypy datei.pyprüft die Hinweise statisch und meldet Widersprüche, etwastrstattintübergeben. Alternativen: pyright (in Pylance), pytype. - Schrittweise: Man kann einzelne Dateien oder Funktionen annotieren. Nicht annotierter Code wird großzügig behandelt.
- Laufzeit: Bibliotheken wie Pydantic oder FastAPI lesen die Hinweise und validieren Eingaben.
- Grenze: Hinweise garantieren nichts zur Laufzeit.
Siehe auch: Typsysteme und Typinferenz, Linter, Formatter und Typprüfer