Menu
Coddy logo textTech

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 = breed

La 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 Retriever

Vous 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 old

Point 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.

challenge icon

Défi

Facile

On 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 Book dans book.py avec une méthode __init__ qui initialise les attributs title, author et pages
  • Le fichier driver.py importera et utilisera votre classe Book pour 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 = breed

Créez des objets en appelant la classe avec des arguments :

rex = Dog("Rex", "German Shepherd")
print(rex.name)  # Rex
print(rex.breed)  # German Shepherd

Les 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 à 1

Essayez 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")
quiz iconTestez-vous

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