Méthode constructeur (__init__)
Fait partie de la section Object Oriented Programming 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 d'une classe avec un constructeur :
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedLa méthode __init__ prend des paramètres et les assigne à des attributs d'instance en utilisant self.
Créez des objets en utilisant le 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") # l'âge est par défaut à 1
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. Cela vous évite de définir manuellement les attributs après la création de l'objet.
Défi
FacileOn vous donne des fichiers Python (book.py et driver.py) 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 le book.py .
Aide-mémoire
La méthode __init__ est un constructeur qui s'exécute automatiquement lors de la création d'un nouvel objet pour initialiser ses attributs :
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedCréez des objets en appelant la classe avec des arguments :
rex = Dog("Rex", "German Shepherd")
print(rex.name) # Rex
print(rex.breed) # German ShepherdLes constructeurs peuvent avoir des valeurs de paramètres par défaut :
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # l'âge est par défaut à 1Essayez vous-même
# À FAIRE : Importer la classe Book depuis book.py
# Utilisez ce format : from book import Book
# À FAIRE : Créer 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
# À FAIRE : S'assurer que my_book est correctement défini avant l'exécution de cette ligne
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 Object Oriented Programming
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 bancaire