UKOnline

Méthode

Une fois un objet construit, on vient de voir qu'on peut accéder à ses attributs, en lecture et/ou et écriture. On peut également utiliser les fonctionnalités qu'il offre. Ces dernières sont représentées par des fonctions, appelées méthodes, qu'il sera possible d'appeler, une fois l'objet créé, sur ce dernier.

Appel de méthode

Une fonction associée à un objet est appelée méthode. Pour appeler une méthode, on utilise l'opérateur d'appel (.) sur la variable contenant une référence vers l'objet dont on veut utiliser une fonctionnalité.

Pour illustrer cela, regardons du côté des objets de type TextCalendar, qui représentent des calendriers. Pour créer un objet TextCalendar, il faut importer le module calendar, puis on peut directement créer un nouvel objet comme suit, le constructeur n'admettant aucun paramètre :

<class 'calendar.TextCalendar'>

Les objets de type TextCalendar offrent une méthode prmonth qui permet d'afficher le calendrier de n'importe quel mois de n'importe quelle année. Pour cela, il faut fournir deux paramètres lors de l'appel à la méthode, respectivement l'année et le mois désiré. Par exemple, si on veut afficher le calendrier d'octobre 2015, il suffit d'écrire :

Dans cette instruction, on a donc appelé la méthode prmonth sur l'objet qui est référencé par la variable cal, en lui fournissant deux paramètres, à savoir les nombres entiers $2015$ et $10$. Cet appel de méthode a pour résultat d'afficher le calendrier demandé à l'écran :

    October 2015
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

La méthode appelée affiche donc directement le calendrier demandé. Il s'agit d'une méthode sans valeur de retour. Tout comme pour les fonctions (une méthode étant simplement une fonction associée à un objet), une méthode peut être avec ou sans valeur de retour.

Au lieu d'afficher le calendrier directement, on pourrait vouloir le récupérer dans une variable. Pour cela, les objets de type TextCalendar proposent une méthode formatmonth qui fonctionne exactement de la même manière que la méthode prmonth, sauf qu'elle renvoie le calendrier sous forme d'une chaine de caractères au lieu de l'afficher :

Objet cible

Une méthode est donc toujours appelée sur un objet. Ce dernier, appelé objet cible, est celui sur lequel la méthode appelée pourra opérer. Déclarons, par exemple, deux objets de type set :

Ces deux instructions créent deux objets en mémoire, ceux-ci étant référencés par les variables numbers et letters, comme le montre la figure 4. Le premier ensemble contient cinq élément et le second trois.

Objets set en mémoire
Les deux variables numbers et letters référencent deux objets différents, tous deux de type set.

Les objets de type set possèdent une méthode pop qui permet de récupérer un élément arbitraire dans l'ensemble. On peut évidemment appeler cette méthode sur chacun des deux objets, en utilisant numbers ou letters comme objet cible. La méthode pop agira à chaque fois sur l'objet cible, en en récupérant un élément de manière arbitraire, comme le montre l'exemple suivant, avec un résultat d'exécution possible :

8
Q