Vous êtes sur la page 1sur 33

Mohammed V University in Rabat

Faculté des Sciences, Rabat


Master IDLOO

Cours de Programmation orientée


objets en Python

Classes et Objets
Définition des objets
Les objets sont des variables pouvant contenir elles
mêmes des fonctions et des variables

2
Classes : Choix du modèle
● Une classe est un modèle suivant lequel on va créer un objet
● C’est dans la classe que nous allons définir nos méthodes et attributs
● Les attributs sont des variables contenues dans les objets

3
Convention de nommage
● Il est préférables d’utiliser pour les noms des classes la convention Camel
Case
● Cette convention n’utilise pas le signe souligné _
● Le principe consiste à mettre en majuscule chaque lettre débutant un nom

par exemple MaClasse

4
Définition d’une classe
● Pour définir une nouvelle classe, on utilise le mot clé class
● par exemple
○ class NomDeLaClasse:

5
Exemple de modélisation d’une personne
● Les caractéristiques d’une personne comportent:
1. nom
2. âge
3. lieu de résidence …
● Pour définir les attributs de notre classe, il faut définir un constructeur dans
notre classe

6
Attributs

7
Nos premiers attributs
● Nous avons définis les attributs qui caractérisent notre personne
● Maintenant il faut définir un constructeur qui est appelé quand on crée notre
objet
● Un constructeur est une méthode qui se charge de créer nos attributs

8
Classe Personne
class Personne: # Définition de notre classe Personne
"""Classe définissant une personne caractérisée par :
- son nom
- son prénom
- son âge
- son lieu de résidence"""

def __init__(self): # Notre méthode constructeur


"""Pour l'instant, on ne va définir qu'un seul attribut"""
self.nom = "Dupont"
9
Constructeur
● la définition du constructeur est faite avec __init__().
● Tous les constructeurs Python s’appellent ainsi
● Notez que dans la définition de la méthode on passe le paramètre self.
● A l’intérieur du constructeur, on crée une variable self.nom
● On lui donne comme valeur Dupont pour notre exemple

10
Tester cette classe
● Pour avoir le résultat de l’action, créons un objet issu de notre classe

>>> perso = Personne()


>>> perso
<__main__.Personne object at 0x00B42570>
>>> perso.nom
‘Dupont’'
>>>

11
Tester cette classe
● <__main__.Personne object at 0x00B42570> précise la classe dont est issue l’objet

● Quand on tape Personne(), on appelle le constructeur de notre classe Personne

12
Étoffons maintenant notre constructeur

13
Programme test sur iPython

14
Analyse de la classe
● objet.attribut = valeur : permet de modifier un attribut
d’instance (c’est déconseillé)
● Dans le constructeur précédent quelque soit l’objet créé, il possède
les mêmes nom prénom, age et lieu de naissance
● On peut les modifier par la suite
● On peut le faire différemment en faisant en sorte que le
constructeur prenne plusieurs paramètres

15
Constructeurs avec paramètres

16
Tester de nouveau la classe Personne

17
Attributs de classes
● Pour le cas précédent, nos attributs sont contenus dans notre objet. Si on
crée plusieurs objets, les attributs ne sont pas forcément les mêmes
● Mais on peut définir des attribut de notre classe

18
Attributs de classes (suite)
● Dans ce cas, on défini l’attribut directement dans le corps de la classe
● Dans le constructeur, on le préfixe par le nom de la classe
● On y accède par la même façon à l’extérieur de la classe

19
Attributs de classes (suite)

● Important : à chaque fois qu’on crée un


nouveau objet, l’attribut de classe
objets_crees s’incrément avec 1
● Ceci est utile quand on veut que tous nos
objets aient certaines données identiques.

20
Méthodes

21
Les méthodes
● Les méthodes sont des actions agissant sur l’objet
● Par exemple la méthode append de list permet de
rajouter des éléments dans l’objet list manipulé

22
Les méthodes
● Nous allons commencer par créer une nouvelle classe TableauNoir
● Notre tableau va posséder une surface sur laquelle on va écrire(un attribut)
● On peut lire notre tableau et l’effacer

23
Exemple de classe TableauNoir avec ses méthodes

24
Test de la classe TableauNoir
Pour le test

25
Self et les méthodes et Python
● Dans les méthodes d’instance on trouve l’objet self
● Si on crée plusieurs tableaux, c’est normal qu’il n’auront pas la même surface
● Donc les attributs sont contenus dans l’objet
● Cependant les méthodes sont contenues dans la classe dans laquelle l’objet
est défini
● Python va chercher la méthode dans la classe non pas dans l’objet.

26
Parametre Self et les méthodes et Python
● Quand vous tapez
○ tab.ecrire()
● c’est comme si vous écrivez
○ TableauNoir.ecrire(tab, …).
● Le paramètre self c’est l’objet qui appelle la méthode. c’est pour celà que que
nous modifions la surface en appelant self.surface
● Donc quand vous travaillez dans une méthode de l’objet sur l’objet lui même,
vous passez par un self.

27
Ajout des méthodes lire() et effacer()

28
Tester de nouveau

29
Techniques d’introspection : La fonction dir
Elle prend en paramètre un objet et renvoie la liste de ses attributs et méthodes

30
Techniques d’introspection : La fonction dir

31
Techniques d’introspection :L'attribut spécial__dict__

● Quand vous développez une classe, tous les objets construits posséderont un
attribut spécial __dict__
● Cet attribut est un dictionnaire ayant comme clés les noms des attributs et
entant que valeurs les valeurs des attributs

32
Techniques d’introspection :L'attribut spécial__dict__
● Quand vous modifiez la valeur de l’attribut, vous modifiez aussi l’attribut dans
l’objet

33

Vous aimerez peut-être aussi