Chapitre 12. Méthodes spéciales pour les séquences
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
Ne vérifie pas si c'est un canard : vérifie s'il jacasse comme un canard, s'il marche comme un canard, etc., etc., selon le sous-ensemble de comportements de canard dont tu as besoin pour tes jeux de langage. (
comp.lang.python, 26 juillet 2000)Alex Martelli
Dans ce chapitre, nous allons créer une classe pour représenter une classe multidimensionnelle Vector- une étape importante par rapport à la classe bidimensionnelle Vector2d du chapitre 11.Vector se comportera comme une séquence plate immuable standard de Python. Ses éléments seront des flottants, et elle prendra en charge les éléments suivants d'ici la fin de ce chapitre :
-
Protocole de séquence de base :
__len__et__getitem__ -
Représentation sûre des instances comportant de nombreux éléments
-
Soutien adéquat au découpage en tranches, production de nouvelles instances
Vector -
Hachage agrégé, prenant en compte chaque valeur d'élément contenue.
-
Extension de la langue de mise en forme personnalisée
Nous mettrons également en place un accès dynamique aux attributs avec __getattr__pour remplacer les propriétés en lecture seule que nous avons utilisées dans Vector2d- bien que cela ne soit pas typique des types de séquences.
Nous parlerons de la façon dont les protocoles et le typage de canard sont liés, et de ses implications pratiques lorsque ...