Chapitre 26. Héritage
- Par Richard Gomez
Pages 553 à 575
Citer ce chapitre
- GOMEZ, Richard,
- Gomez, Richard.
- Gomez, R.
Citer ce chapitre
- Gomez, R.
- Gomez, Richard.
- GOMEZ, Richard,
En langage Python, il est possible de définir une classe X comme étant la fille de classes A, B, C, D, etc. Exemple :
On dit dans le cas ci-dessus que X dérive (directement) de A, B, C. On dit aussi que X a pour bases A,B,C. On dit aussi que A, B, C sont les parents de X. L’attribut bases contient la liste des parents de X :
L’attribut base contient le premier parent :
L’analogie avec la filiation humaine est limitée : alors que tout humain possède exactement deux parents biologiques, une classe possède un nombre n quelconque de parents avec n ⩾ 1.
Le code ci-dessous :
créé une classe X fille de la classe object. Il équivaut exactement au code ci-dessous :
Chez Python 3, toutes les classes descendent de object, directement ou indirectement :Toute classe possède un ensemble plus ou moins grand d’ancêtres (on dit aussi superclasses). Bien entendu, X dérive de A si et seulement si A est une superclasse de X. La fonction issubclass permet de savoir si une classe dérive d’une autre :
On notera que X est considérée comme sous-classe de X :
L’attribut mro contient la liste des ancêtres d’une classe :
On peut améliorer l’affichage grâce à l’attribut name :Exercice 26.1.
Trouver les sous-classes de BaseException qui ont le plus d’ancêtres en utilisant le module builtins. On en trouve 8, parmi lesquelles il y a BrokenPipeError. Chacune d’elles possède 5 ancêtres. Si on effectue cette recherche en implémentant une fonction se basant sur la méthod…
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 €