En Python moderne (3.10+), from __future__ import annotations
et if TYPE_CHECKING
ne s'opposent pas, ils sont complémentaires et souvent utilisés ensemble dans du code idiomatique.
from future import annotations
- Rend toutes les annotations paresseuses (lazy) en les stockant sous forme de chaînes de caractères, évitant ainsi l'évaluation immédiate des types au moment du parsing du module.
- Cela évite les imports circulaires dans les annotations uniquement, sans avoir besoin de quotes autour des noms de classes.
- Utile pour tous les usages d’annotations, même en dehors des blocs conditionnels.
if TYPE_CHECKING
- Ce bloc permet d’importer des modules ou classes uniquement pour les outils de typage statique (mypy, pyright, etc.), sans exécuter l'import à runtime.