Quel type de typage en Python : statique ou dynamique?
sobes.tech IA
Réponse de l'IA
Dynamique, mais avec des éléments statiques grâce aux annotations de types.
Dans la typage dynamique, le type d'une variable est déterminé lors de l'exécution du programme en fonction de la valeur qui lui est assignée.
# Typage dynamique : x peut prendre différents types de données
x = 10 # int
x = "bonjour" # str
Depuis la version Python 3.5, des annotations de types (type hints) ont été ajoutées, permettant d'indiquer le type attendu d'une variable, d'un argument de fonction ou d'une valeur de retour. Cela ne rend pas Python un langage à typage statique au sens classique, mais permet d'utiliser des analyseurs statiques de code (par exemple, mypy) pour vérifier les types avant l'exécution.
# Annotations de types
def greet(name: str) -> str:
return f"Bonjour, {name}"
âge: int = 30
Principales différences entre typage dynamique et statique :
| Caractéristique | Typage dynamique | Typage statique |
|---|---|---|
| Définition des types | En temps d'exécution | En temps de compilation |
| Vérification des erreurs de types | En temps d'exécution | En temps de compilation |
| Flexibilité | Plus élevé | Moins élevé |
| Performance | Peut être inférieur (en raison des vérifications en cours d'exécution) | Généralement supérieur (les types sont connus à l'avance) |
Malgré les annotations, Python reste un langage à typage dynamique, car la vérification des types en temps d'exécution se produit toujours, et il est possible d'assigner à une variable une valeur d'un autre type, même si une annotation syntaxique était présente. Les annotations servent à améliorer la lisibilité du code, faciliter le débogage et utiliser des outils d'analyse statique.