Méthode constructeur (__init__)
Fait partie de la section Programmation orientée objet du Journey Python de Coddy. Leçon 7 sur 64.
La méthode __init__ est une méthode spéciale qui s’exécute automatiquement lorsque vous créez un nouvel objet. Elle initialise les attributs de l’objet.
Voici un exemple de classe avec un constructeur :
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedLa méthode __init__ accepte des paramètres et les affecte aux attributs de l’instance à l’aide de self.
Créez des objets à l’aide du constructeur :
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Lorsque vous appelez Dog("Rex", "German Shepherd"), Python appelle automatiquement __init__ et transmet les arguments.
Accédez aux attributs qui ont été définis par le constructeur :
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)Sortie :
Rex
German Shepherd
Buddy
Golden RetrieverVous pouvez également avoir un constructeur avec des valeurs par défaut :
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# Créer des chats
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age vaut 1 par défaut
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")Sortie :
Fluffy is 3 years old
Whiskers is 1 years oldPoint clé : la méthode __init__ garantit que chaque objet est correctement configuré avec ses données initiales lors de sa création. Elle vous évite de devoir définir manuellement les attributs après la création de l’objet.
Défi
FacileDes fichiers Python (book.py et driver.py) vous sont fournis pour implémenter un système de gestion de livres. Dans ce défi, vous allez définir une classe Book dans un fichier, qui sera importée et utilisée dans un autre.
Votre tâche consiste à :
- Compléter la classe
Bookdansbook.pyavec une méthode__init__qui initialise les attributstitle,authoretpages - Le fichier
driver.pyimportera et utilisera votre classeBookpour créer un objet livre pour"Harry Potter" by "J.K. Rowling" with 400 pages
Suivez les commentaires TODO détaillés dans book.py .
Essayez vous-même
# TODO: Importez la classe Book depuis book.py
# Utilisez ce format : from book import Book
# TODO: Créez un objet book nommé 'my_book' avec les valeurs suivantes :
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Exemple : my_book = Book("Title", "Author", pages)
# Afficher les détails du livre
# TODO: Assurez-vous que my_book est correctement défini avant que cette ligne ne s'exécute
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation orientée objet
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaireEntraînez-vous par vous-même : Compilateur Python en ligne