Module Typing Python
Le module typing fournit des annotations de type pour les arguments de fonctions, les valeurs de retour et les structures de données.
from typing import TypedDict
Les annotations de type ne changent pas la façon dont Python exécute votre programme. Elles aident les éditeurs, les linters et les lecteurs à comprendre quels types de valeurs votre code attend.
Annoter les signatures de fonctions
def greet(name: str) -> str:
return f'Hello {name}'
print(greet('Ada'))
Hello Ada
L’annotation name: str signifie que la fonction attend une chaîne. L’annotation -> str signifie qu’elle doit renvoyer une chaîne.
Types de conteneurs courants
Utilisez les annotations de type pour décrire la forme de vos données.
def average(values: list[float]) -> float:
return sum(values) / len(values)
print(average([1.0, 2.0, 3.0]))
2.0
Les annotations de type sous la forme list[str] nécessitent Python 3.9 ou plus.
Valeurs optionnelles
Utilisez | None lorsqu’une valeur peut être absente.
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
La syntaxe d’union X | Y nécessite Python 3.10 ou plus.
TypedDict
TypedDict décrit des objets de type dictionnaire avec des clés fixes.
from typing import TypedDict
class User(TypedDict):
name: str
active: bool
user: User = {'name': 'Ada', 'active': True}
print(user['name'])
Ada
Alias de type
Un alias de type donne un nom lisible à un type plus complexe.
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