3.1 Introduction à la POO : Le Plan et la Réalisation
Jusqu'ici, nous avons manipulé des données "plates" (chaînes, listes, dictionnaires).
La Programmation Orientée Objet (POO) permet de regrouper les données et les actions qui les concernent au sein d'une même entité : la Classe.
1. Classe vs Objet
Imaginez que la Classe est le plan de construction (le blueprint) et que l'Objet est la réalisation concrète dans la Matrice.
- Classe : Le concept d'un "Agent".
- Objet (Instance) : Agent Smith, Agent Brown...
2. La méthode __init__ et le mot-clé self
Pour donner des caractéristiques à nos objets dès leur création, on utilise le constructeur __init__. Le paramètre self est obligatoire : il représente l'objet lui-même (l'équivalent de $this en PHP).
class Agent:
def __init__(self, nom, matricule):
self.nom = nom
self.matricule = matricule
def se_presenter(self):
return f"Je suis l'Agent {self.nom}, matricule {self.matricule}."
# Création d'un objet (instanciation)
smith = Agent("Smith", "001")
print(smith.se_presenter())
Résultat attendu :
Je suis l'Agent Smith, matricule 001.
Le saviez-vous ?
En PHP, on écrit
$this->nom. En Python, on écrit self.nom. La différence majeure est que self doit être explicitement passé en premier argument de chaque méthode de la classe !