EMZETT.
Login

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: und name: str = "Anna".
  • Container: list[int], dict[str, float], tuple[int, str], set[str] (ab Python 3.9 direkt, vorher typing.List usw.).
  • Optional und Vereinigung: str | None (ab 3.10) oder Optional[str]. Sagt: kann None sein, daher vor der Nutzung prüfen.
  • Weitere: Callable[ [int], str ] für Funktionen, TypedDict für Dictionaries mit festen Schlüsseln, Protocol für strukturelle Schnittstellen („Enten-Typisierung” mit Prüfung), Any als Ausstieg.
  • mypy: mypy datei.py prüft die Hinweise statisch und meldet Widersprüche, etwa str statt int ü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