Menu
Coddy logo textTech

Il parametro self

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

Il parametro self fa riferimento all'istanza di una classe all'interno dei metodi. Ti consente di accedere agli attributi dell'oggetto corrente e di modificarli.

Ecco un esempio di una classe con metodi che usano self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

Il parametro self deve sempre essere il primo parametro nelle definizioni dei metodi. Indica al metodo quale oggetto specifico viene utilizzato.

Crea un oggetto auto e aggiungi attributi:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

Ora chiama i metodi:

my_car.honk()
my_car.describe()

Output:

Beep beep!
I am a Red Sedan

Nota che quando chiami my_car.describe(), non passi nulla per self: Python passa automaticamente my_car come parametro self.

Ecco cosa succede dietro le quinte:

# Quando scrivi questo:
my_car.describe()

# Python in realtà fa questo:
Car.describe(my_car)

Il parametro self consente a ogni oggetto di accedere ai propri dati. Senza self, i metodi non saprebbero quali attributi dell'oggetto usare.

Punto chiave: includi sempre self come primo parametro nelle definizioni dei metodi, ma non passarlo mai quando chiami i metodi: Python lo gestisce automaticamente.

challenge icon

Sfida

Facile

Completa la classe Car in car.py aggiungendo un metodo chiamato display_info che utilizzi il parametro self per stampare l'anno, la marca e il modello dell'auto nel formato:

"This car is a [year] [make] [model]".

  • car.py: contiene la definizione della classe Car, in cui aggiungerai il metodo display_info
  • driver.py: file di esecuzione principale che importa e utilizza la classe Car

Il file driver.py importerà la tua classe Car e creerà delle istanze per testare la tua implementazione. Assicurati che il metodo funzioni correttamente quando viene chiamato dal file driver.

Provalo tu

from car import Car

# Metti alla prova il tuo codice
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # Dovrebbe stampare: This car is a 2020 Toyota Corolla
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