Nella programmazione orientata agli oggetti, il riferimento all'oggetto attuale, spesso chiamato self, gioca un ruolo cruciale. Imparerai come utilizzare efficacemente questo riferimento self per gestire l'interazione con classi e oggetti in Python.
Principali intuizioni
- Il riferimento self (self) è una convenzione in Python che ti permette di accedere alle proprietà e ai metodi dell'oggetto attuale.
- self è utilizzato come primo parametro nei metodi d'istanza e fa riferimento all'oggetto specifico su cui il metodo è stato chiamato.
- Puoi accedere agli oggetti dai metodi di classe passando l'oggetto come parametro.
Esplorare il riferimento self
Per comprendere appieno il significato di self, consideriamo un esempio semplice. Supponiamo di avere una classe Persona.

Quando crei un'istanza di questa classe, viene riservata memoria e l'oggetto è pronto per essere utilizzato. Qui, la variabile che utilizzi per l'istanza fa riferimento all'area di memoria associata.
La particolarità è: quando vuoi accedere alle proprietà o ai metodi all'interno della classe, hai bisogno di accesso all'oggetto attuale. Poiché quando definisci la classe non sai come si chiamerà l'oggetto in seguito, self è il modo per accedere a questo riferimento.
Quindi, se utilizzi self.name, puoi accedere al nome della persona che è stato memorizzato nell'inizializzatore.
Un esempio pratico – La classe Auto
Ora costruiamo un esempio pratico. Creiamo una classe Auto che ha un marchio e un inizializzatore.

Nell'inizializzatore, il parametro marchio è utilizzato per impostare il marchio dell'auto. Qui entra in gioco self. Viene utilizzato nel metodo per assegnare il valore passato alla variabile d'istanza.

Ora puoi creare un metodo get_marchio che ti permette di accedere al marchio dell'auto. Il parametro self viene passato automaticamente quando il metodo viene chiamato.

Se ora crei un oggetto della classe Auto, diciamo tesla, e accedi al metodo get_marchio, self farà riferimento all'oggetto specifico, quindi tesla.

Questo significa che puoi aspettarti che il metodo get_marchio restituisca il valore che è stato precedentemente impostato.

Puoi anche chiamare il metodo direttamente tramite la classe passando l'oggetto. Questo non viene fatto spesso, ma è utile per comprendere il funzionamento di self.

È importante notare che il metodo standard consiste nel chiamare il metodo tramite l'oggetto, piuttosto che tramite la classe.
Sintesi – Dominare il riferimento self in Python
Il riferimento self è un concetto fondamentale nella programmazione orientata agli oggetti con Python. Ti consente di accedere facilmente alle proprietà e ai metodi del tuo oggetto, sia all'interno che all'esterno di funzioni e metodi. Se padroneggi l'uso di self nelle tue classi, sarai in grado di scrivere classi più chiare, funzionali e manutenibili sia nei tuoi progetti che nel contesto di progetti di team condivisi.
Domande frequenti
Che cos'è self in Python?self è il primo parametro nei metodi d'istanza e fa riferimento all'oggetto attuale.
Perché self è importante?self consente l'accesso alle proprietà e ai metodi dell'oggetto attuale.
Posso usare self in un metodo di classe?Sì, tuttavia è più comune chiamare il metodo tramite l'oggetto.
Come viene passato self?self viene passato automaticamente come primo parametro ai metodi d'istanza.
Cosa succede se dimentico self in un metodo?Se dimentichi self, non puoi accedere alle variabili o ai metodi d'istanza.