Fondamentaux Python POO : Classes, Objets, Héritage et Constructeurs expliqués
Programmation Orientée Objet (POO) en Python
Le modèle POO de Python permet aux développeurs de modéliser des entités réelles comme des objets définis par des classes. Le langage privilégie la réutilisation de code et la modularité, rendant la création et l'extension de classes simples.
Qu'est-ce qu'une classe ?
Une classe est un conteneur logique qui regroupe des données (attributs) et des comportements (méthodes). Elle définit un modèle pour des objets partageant des propriétés communes.
Exemple : Une classe Client pourrait exposer des attributs comme transactions, solde et dette, avec des méthodes pour deposer() ou retirer().
Définir une classe en Python
Suivez ces étapes pour créer une classe simple :
- Utilisez le mot-clé
class:class MaClasse: pass - Définissez les méthodes à l'intérieur de la classe. Le premier paramètre de chaque méthode d'instance est
self, qui réfère à l'objet lui-même.class MaClasse: def saluer(self): print("Bonjour depuis MaClasse") - Instanciez la classe :
obj = MaClasse()
- Appelez ses méthodes :
obj.saluer()
Exemple complet :
# Exemple fonctionnel d'une classe Python
class MaClasse:
def methode1(self):
print("Guru99")
def methode2(self, texte):
print("Tests logiciels : " + texte)
def main():
c = MaClasse()
c.methode1()
c.methode2(" Les tests sont amusants")
if __name__ == "__main__":
main()
Héritage en Python
L'héritage permet à une classe dérivée de réutiliser et étendre le comportement d'une classe de base. Python supporte l'héritage simple et multiple.
class Base:
def saluer(self):
print("Bonjour depuis Base")
class Derivee(Base):
def saluer(self):
super().saluer()
print("Bonjour depuis Derivee")
# Utilisation
obj = Derivee()
obj.saluer()
Points clés :
- Les classes dérivées héritent automatiquement attributs et méthodes.
- Surchargez les méthodes en définissant une méthode du même nom dans la sous-classe.
- Appelez une méthode parente explicitement avec
ClasseParente.methode(self, …)ousuper().methode().
Constructeurs : __init__
La méthode __init__ initialise les nouveaux objets avec des valeurs prédéfinies.
class Utilisateur:
def __init__(self, nom):
self.nom = nom
def dire_bonjour(self):
print(f"Bienvenue sur Guru99, {self.nom}")
utilisateur = Utilisateur("Alex")
utilisateur.dire_bonjour()
Sortie : Bienvenue sur Guru99, Alex
Python 2 vs Python 3
Seules de mineures différences syntaxiques existent. L'exemple ci-dessus fonctionne dans les deux versions avec les instructions print appropriées.
Points clés à retenir
- Les classes regroupent données et comportement, définies avec le mot-clé
class. - Les méthodes d'instance utilisent
selfpour référencer l'objet. - L'héritage favorise la réutilisation de code et peut être simple ou multiple.
- Les constructeurs (
__init__) définissent l'état initial des nouveaux objets. - La syntaxe flexible de Python et la gestion runtime de
selfrendent la POO intuitive.
Python
- Classes et objets C# : Fondations pour une POO robuste
- Maîtriser la programmation orientée objet Python : classes, héritage, encapsulation et polymorphisme
- Maîtriser l'héritage Python : concepts, syntaxe et exemples pratiques
- Construire un robot avec Raspberry Pi et Python : Guide complet
- Struct vs Class en C++ : Différences Clés, Syntaxe et Cas d'Utilisation Optimaux
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
- Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques
- Comprendre type() et isinstance() en Python : exemples pratiques
- Python list.index() : Comment Trouver les Positions d'Éléments avec Exemples Pratiques