Type Hints fangen Fehler vor der Ausführung ab, verbessern die IDE-Autovervollständigung und dienen als Dokumentation.
Grundlegende Typen¶
from typing import Optional def greet(name: str, times: int = 1) -> str: return f”Hello {name}! ” * times def find_user(user_id: int) -> Optional[dict]: … # Kann None zurückgeben
Python 3.10+¶
def process(data: str | None) -> list[int]: …
Generics und Protocol¶
from typing import TypeVar, Protocol T = TypeVar(‘T’) def first(items: list[T]) -> T: return items[0] class Renderable(Protocol): def render(self) -> str: … def display(item: Renderable) -> None: print(item.render())
mypy¶
pyproject.toml¶
[tool.mypy] strict = true warn_return_any = true
Ausführung¶
mypy src/
Wichtigste Erkenntnis¶
Type Hints überall + mypy –strict. Fängt Fehler vor der Laufzeit ab, verbessert die DX.