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 = breedIl 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 RetrieverPuoi 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 oldPunto 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.
Sfida
FacileTi 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
Bookinbook.pycon un metodo__init__che inizializzi gli attributititle,authorepages - Il file
driver.pyimporterà e userà la tua classeBookper 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")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
1Fondamenti di OOP
File esterniIntroduzione a OOPClassi vs. oggettiIl parametro selfMetodiAttributiMetodo costruttore (__init__)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa funzione super()Sovrascrittura dei metodiEreditarietà multiplaOrdine di risoluzione dei metodiRiepilogo - Gerarchia dei dipendenti7Metodi speciali
Introduzione ai metodi magiciSovraccarico degli operatoriMetodi magici dei contenitoriRiepilogo - Lista personalizzata10Modelli di progettazione Parte 1
Introduzione ai modelli di progettazioneModello SingletonModello FactoryModello ObserverModello Strategy2Decoratori
Introduzione ai decoratoriDecoratore di proprietàDecoratore di metodo staticoDecoratore di metodo di classe5Polimorfismo
Ripasso dell'override dei metodiDuck typingClassi e metodi astrattiProgettazione delle interfacceRiepilogo - Calcolatore di forme8Concetti avanzati di OOP
Composizione vs ereditarietàMixinMetodi statici e di classeDecorator di classeContext manager11Pattern di progettazione - Parte 2
Pattern dei comandiPattern adattatorePattern decoratorePattern metodo templatePattern statoPattern composito3Proprietà delle classi
Variabili di istanza e di classeDecorator delle proprietàAttributi privatiRiepilogo - Gestore di conti bancari6Incapsulamento
Membri pubblici, protetti e privatiModificatori di accessoOccultamento delle informazioniDecorator delle proprietà: avanzatiRipasso - Sistema di registri degli studenti12Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e UtenteSistema di prestitoFunzionalità di ricercaInterfaccia amministratoreTest e integrazioneEsercitati da solo: Compilatore Python online