Comment créer une classe en Python (programmation orientée objet)
Apprenez à créer une classe en Python. Maîtrisez le constructeur __init__, les méthodes d'instance, le mot-clé self et l'instanciation d'objet.
Aperçu
La programmation orientée objet (POO) est un paradigme puissant utilisé pour modéliser des entités du monde réel, structurer des applications et promouvoir la réutilisabilité du code. En Python, tout est un objet et les classes sont les modèles à partir desquels les objets individuels sont créés. La création d'une classe vous permet de regrouper des attributs de données et des fonctions.
Pour définir une classe, vous utilisez le mot-clé `class` suivi du nom de la classe (écrit classiquement en PascalCase). A l'intérieur de la classe, la méthode la plus importante est le constructeur : `__init__(self, ...)`. Cette méthode magique spéciale est automatiquement exécutée lorsque vous instanciez la classe, initialisant ainsi les attributs de données de départ de l'objet.
Le paramètre `self` représente l'instance spécifique de la classe que vous êtes en train de créer ou de modifier. Chaque méthode d'instance au sein de la classe doit accepter « self » comme premier argument. Les méthodes d'instance sont des fonctions définies à l'intérieur de la classe qui opèrent sur les attributs de l'objet, permettant une encapsulation propre de la logique.
Sortie de code et d'exécution
Ce script illustre la création d'une classe, la définition des propriétés, les méthodes d'instance de classe et la création d'objets.
# 1. Defining a class
class User:
def __init__(self, username, email):
self.username = username
self.email = email
self.active = True # Default attribute
def get_info(self):
status = "Active" if self.active else "Inactive"
return f"User: {self.username} | Email: {self.email} | Status: {status}"
# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")
# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.comMise en œuvre étape par étape
- Utilisez le mot-clé class pour déclarer le modèle de classe.
- Définissez le constructeur __init__(self, ...) pour configurer les attributs initiaux.
- Ajoutez des méthodes d'instance qui acceptent self comme premier paramètre pour fonctionner avec l'état de l'objet.
- Appelez ClassName(...) pour instancier et créer une nouvelle instance d'objet.
Foire aux questions
Que représente le paramètre self ?
Il fait référence à l’instance spécifique de l’objet créé ou manipulé. Il est nécessaire de lier les attributs à l'instance.
Une classe peut-elle avoir des attributs partagés entre toutes les instances ?
Oui, ce sont des attributs de classe. Définissez-les directement sous l'en-tête de classe (en dehors de __init__) et accédez-y en utilisant ClassName.attribute.
Sujets connexes
Apprenez à gérer les exceptions en Python à l’aide des blocs try, except, else et enfin. Écrivez du code Python sans erreur et résistant aux plantages.
Comment utiliser la compréhension de liste en PythonApprenez à utiliser les compréhensions de listes en Python. Écrivez des boucles concises, appliquez des filtres conditionnels et créez des matrices avec une syntaxe visuelle claire.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes du dictionnaire Python
Apprenez les méthodes du dictionnaire Python. Guide de référence complet pour les insertions, les récupérations, les mises à jour et les vérifications de paires clé-valeur.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.