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 classe P,

  • la fonction super() renvoie la classe parente,

  • une méthode enfant avec le nom d’une méthode parent, remplace celle-ci.

Question

La la classe P dans E(P) est appelé




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 rectangulaire

  • fill_box() pour dessiner un rectangle rempli

  • inside(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.