Chapitre 13. Les protocoles
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
J'ai un aveu à faire. J'ai contourné quelque chose dans le système de types de Python qui, à première vue, est contradictoire. Cela a à voir avec une différence essentielle de philosophie entre le système de types d'exécution de Python et les indices de types statiques.
De retour au chapitre 2, j'ai décrit la façon dont Python prend en charge le typage canard. Rappelle-toi que cela signifie que tu peux utiliser des objets dans un contexte à condition que cet objet prenne en charge un ensemble spécifique de comportements. Tu n'as pas besoin d'une classe mère ou d'une structure d'héritage prédéfinie pour utiliser le typage de canard.
Cependant, le vérificateur de type n'a aucune idée de la façon dont il peut gérer le typage en canard sans aucune aide. Le vérificateur de caractères sait comment traiter les types connus au moment de l'analyse statique, mais comment traite-t-il les décisions de typage canard prises au moment de l'exécution ?
Pour remédier à cela, je vais te présenter les protocoles, une fonctionnalité introduite dans Python 3.8. Les protocoles résolvent la contradiction mentionnée ci-dessus ; ils annotent les variables à typage canard pendant la vérification du type. J'expliquerai pourquoi tu as besoin de protocoles, comment définir les tiens et comment les utiliser dans des scénarios avancés. Mais avant de commencer, ...