Python Typing Modul
Das typing-Modul bietet Typ-Hinweise für Funktionsargumente, Rückgabewerte und Datenstrukturen.
from typing import TypedDict
Typ-Hinweise ändern nicht, wie Python dein Programm ausführt. Sie helfen Editoren, Lintern und Lesern zu verstehen, welche Arten von Werten dein Code erwartet.
Funktionssignaturen annotieren
def greet(name: str) -> str:
return f'Hello {name}'
print(greet('Ada'))
Hello Ada
Die Annotation name: str bedeutet, dass die Funktion einen String erwartet. Die Annotation -> str bedeutet, dass sie einen String zurückgeben soll.
Gängige Container-Typen
Verwende Typ-Hinweise, um die Form deiner Daten zu beschreiben.
def average(values: list[float]) -> float:
return sum(values) / len(values)
print(average([1.0, 2.0, 3.0]))
2.0
Annotationen im Stil list[str] erfordern Python 3.9 oder höher.
Optionale Werte
Verwende | None, wenn ein Wert fehlen kann.
def find_user(user_id: int) -> str | None:
if user_id == 1:
return 'Ada'
return None
print(find_user(1))
print(find_user(2))
Ada
None
Die Union-Syntax X | Y erfordert Python 3.10 oder höher.
TypedDict
TypedDict beschreibt dictionary-ähnliche Objekte mit festen Schlüsseln.
from typing import TypedDict
class User(TypedDict):
name: str
active: bool
user: User = {'name': 'Ada', 'active': True}
print(user['name'])
Ada
Typ-Aliase
Ein Typ-Alias gibt einem komplexeren Typ einen gut lesbaren Namen.
Coordinates = tuple[float, float]
def show_location(point: Coordinates) -> str:
return f'{point[0]}, {point[1]}'
print(show_location((12.5, 35.8)))
12.5, 35.8