Chapitre 15. Objets subscriptables
- Par Richard Gomez
Pages 293 à 304
Citer ce chapitre
- GOMEZ, Richard,
- Gomez, Richard.
- Gomez, R.
Citer ce chapitre
- Gomez, R.
- Gomez, Richard.
- GOMEZ, Richard,
Définition 15.1. On dit que x est subscriptable s’il supporte des opérations du genre x[k]. Dans le cas particulier où il ne supporte cette opération que pour des k entiers, on dit que x est indexable.
La traduction du mot anglais subscriptable est inscriptible. Nous avons conservé la forme anglaise car c’est elle qui est employée dans la plupart des documentations.Remarque 15.2. Les objets indexables de type interne sont les séquences (str, tuple, bytes, range, list, et bytearray). Les objets de type dict sont subscriptables. Ces 7 types sont les seuls types internes subscriptables.
Il existe 3 opérations fondamentales pour les objets subscriptables. Derrière chacune de ces opérations se cache une méthode spéciale :
Pour créer une classe d’objets subscriptables, il suffit de surcharger ces méthodes spéciales.Attention. Ce n’est pas parce qu’un objet x accepte la lecture x[k] qu’il accepte forcément l’affectation « x[k] = v », ou l’effacement « del x[k] ». C’est le cas par exemple des chaînes de caractères :Toute lecture x[k] retourne x._ _getitem_ _(k). Voici l’exemple le plus simple possible :
Tout est bon pour être une clé, et la réponse est toujours la même :
Voici un exemple à peine plus élaboré (mais tout aussi artificiel) :
Testons-le :
Ce programme est simple : a["un"], a["deux"] et a["trois"] retournent les attributs x, y et z, respectivement. Toute autre clé retourne None (quand une fonction n’aboutit ni à return, ni à yield, elle retourn…
Date de mise en ligne : 23/02/2023
Ce chapitre est en accès conditionnel
Acheter cet ouvrage
35,99 €
Acheter ce chapitre
5,00 €