Menu
Coddy logo textTech

Metodo costruttore (__init__)

Fa parte della sezione Programmazione orientata agli oggetti del percorso Python di Coddy. Lezione 7 di 64.

Il metodo __init__ è un metodo speciale che viene eseguito automaticamente quando crei un nuovo oggetto. Inizializza gli attributi dell'oggetto.

Ecco un esempio di classe con un costruttore:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

Il metodo __init__ accetta parametri e li assegna agli attributi dell'istanza usando self.

Crea oggetti usando il costruttore:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

Quando chiami Dog("Rex", "German Shepherd"), Python chiama automaticamente __init__ e passa gli argomenti.

Accedi agli attributi impostati dal costruttore:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

Output:

Rex
German Shepherd
Buddy
Golden Retriever

Puoi anche avere un costruttore con valori predefiniti:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# Crea i gatti
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # Il valore predefinito di age è 1

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

Output:

Fluffy is 3 years old
Whiskers is 1 years old

Punto chiave: il metodo __init__ assicura che ogni oggetto venga configurato correttamente con i suoi dati iniziali al momento della creazione. Ti evita di dover impostare manualmente gli attributi dopo la creazione dell’oggetto.

challenge icon

Sfida

Facile

Ti vengono forniti dei file Python (book.py e driver.py) per implementare un sistema di gestione dei libri. In questa sfida, definirai una classe Book in un file, che verrà importata e usata in un altro.

Il tuo compito è:

  • Completare la classe Book in book.py con un metodo __init__ che inizializzi gli attributi title, author e pages
  • Il file driver.py importerà e userà la tua classe Book per creare un oggetto libro per "Harry Potter" by "J.K. Rowling" with 400 pages

Segui i commenti dettagliati TODO in book.py.

Provalo tu

# TODO: Importa la classe Book da book.py
# Usa questo formato: from book import Book

# TODO: Crea un oggetto libro chiamato 'my_book' con i seguenti valori:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Esempio: my_book = Book("Title", "Author", pages)

# Stampa i dettagli del libro
# TODO: Assicurati che my_book sia definito correttamente prima che questa riga venga eseguita
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Python online