Académique Documents
Professionnel Documents
Culture Documents
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
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"""
10
Tester cette classe
● Pour avoir le résultat de l’action, créons un objet issu de notre classe
11
Tester cette classe
● <__main__.Personne object at 0x00B42570> précise la classe dont est issue l’objet
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)
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