9. Hériter - E(P)
¶
Dans ce chapitre nous découvrons comment une classe E
peut hériter les attributs et les méthodes d’une classe parents P
. Ceci permet de hiérarchiser notre code, et de facilement réutiliser des méthodes et des attributs, tout en laissant la liberté de les changer ou d’en ajouter des autres. Nous allons voir que :
l’expression
class E(P):
désigne un héritage depuis la classeP
,la fonction
super()
renvoie la classe parente,une méthode enfant avec le nom d’une méthode parent, remplace celle-ci.
9.1. Une séquence d’objets¶
Des le tout premier chapitre nous avons vu qu’un programme est une séquence d’instructions. Un tuple est une séquence d’objets.
Exercice 1
Ajoutez un élément de type bool
.
9.2. Un tuple dans un tuple¶
Un tuple peut être imbriqué dans un autre tuple.
Nous pouvons utiliser un tuple pour une séquence de coordonnées qui représente une forme.
Nous pouvons utiliser un tuple pour une séquence de couleurs.
9.3. Indexer un tuple¶
Un index [i]
permet d’extraire un élément.
L’opérateur de tranche [i:j]
permet d’extraire un sous-tuple.
9.4. Les méthodes¶
En Python, des noms de méthodes qui commencent et terminent par __
(2 tirets bas) sont des méthodes spéciales. Ce sont ces méthodes qui font fonctionner les opérateurs tels que +
ou *
:
Ces opérations ‘surchargent’ les opérateurs standards. Les opérateurs standard (+
, *
) vont acquérir une nouvelle signification pour des objets de cette classe.
__add__ +
__mul__ *
__len__ len
Et nous retrouvons ces 3 méthodes-ci qui existent aussi pour les listes.
9.5. classe Vec2D¶
La classe Vec2D
définit des vecteurs 2D. Elle définit les opérations :
addition
soustraction
multiplication
9.6. Visualiser Vect2D¶
9.7. Classe Dot, Rect, Text¶
Dans l’exemple suivant, nous définissons une classe parente Object
. Elle possède les méthodes.
draw_box()
pour dessiner un contour rectangulairefill_box()
pour dessiner un rectangle rempliinside(x, y)
pour tester si le point(x, y)
se trouve dans le rectangle
Les trois fonctions Dot
, Rect
et Text
héritent tous les méthodes de la classe parent Object
.
Exercice 2
Cliquez dans tous les objets et observez les infos affichées dans la console.