Salta al contenuto principale

Come scrivere una classe in Python

Profile picture for user luca77king

La programmazione orientata agli oggetti è uno dei pilastri del mondo della programmazione. In Python, creare una classe è un processo semplice e flessibile. Se sei già familiarizzato con linguaggi C-Like come Java o C#, potresti trovare la sintassi di Python un pò complessa. Tuttavia, con un po' di pratica, scrivere classi in Python diventerà sempre più facile.

La definizione di una classe in Python avviene utilizzando la parola chiave "class" seguita dal nome della classe. Inoltre, Python utilizza l'indentazione per identificare i blocchi di codice, il che rende la scrittura di classi più pulita e leggibile. In generale, Python offre maggiore flessibilità e libertà rispetto a linguaggi come Java o C#, sia nella creazione di classi che nella programmazione in generale.

Creare la struttura della classe 

Per scrivere una classe in Python, il primo passo è definire la sua struttura. Ecco come dovrebbe apparire la struttura di una classe di base:

class NomeClasse(): # Sostituisci "NomeClasse" con un nome appropriato

    def __init__(self): # Il metodo __init__ è speciale e verrà eseguito all'istante della creazione di un'oggetto della classe

    # Aggiungi qui i tuoi metodi
    # Puoi anche includere variabili e altri attributi

Questa è la struttura di base di una classe in Python, ma ovviamente potrai modificarla in base alle esigenze del tuo programma.

Il metodo init in Python è simile ai costruttori di altri linguaggi come Java, C# o PHP, ma il suo ruolo è quello d'inizializzatore. In Python non è possibile effettuare l'overload del metodo come avviene in Java o C# ma siamo più vicini a PHP... Possiamo infatti impostare dei parametri con un valore predefinito:

class NomeClasse:

    def __init__(self, name="Giacomo"):
        self.name = name

Inoltre, in Python non è possibile specificare modificatori di accesso (come "public" o "private") per i metodi, ma l'accessibilità agli attributi e ai metodi viene controllata mediante convenzioni di nomenclatura.

A tal proposito, in Python, self è un parametro implicito per i metodi di una classe. Serve per fare riferimento all'istanza della classe che stiamo utilizzando. Quando chiamiamo un metodo su un'istanza di classe, Python automaticamente passa l'istanza come primo argomento (self). Questo significa che all'interno del metodo possiamo accedere alle variabili e ai metodi dell'istanza della classe utilizzando il riferimento a self. È importante notare che in Python self non è una parola riservata, ma una convenzione. È possibile utilizzare un altro nome per self, ma self è il nome più comunemente usato e raccomandato.

class NomeClasse:

    def __init__(pippo, name="Giacomo"):
        pippo.name = name

Istanziamento della Classe  

All'interno del metodo __init__ si possono anche inizializzare altri oggetti, come liste o dizionari, se necessario per il programma.

Per aggiungere metodi alla classe Python, bisogna inserirli dopo la sezione __init__. Ad esempio:

def printname(self):
    return self.name

Nel nostro esempio, la classe NomeClasse ha un metodo __init__ che accetta un argomento opzionale name, che viene utilizzato per impostare il valore di una variabile di istanza self.name. La classe ha anche un metodo printname che restituisce il valore della variabile self.name.

class NomeClasse:

    def __init__(self, name="Giacomo"):
        self.name = name

    def printname(self):
        return self.name

Per creare un'istanza di NomeClasse, è necessario fornire il nome desiderato come argomento opzionale del metodo __init__. Ad esempio:

my_object = NomeClasse(name="Luca")

Per stampare il valore restituito da un metodo di un'istanza di classe, è sufficiente chiamare il metodo sull'istanza e utilizzare la funzione print per visualizzare il risultato.

Nell'esempio seguente, l'istanza my_object della classe NomeClasse viene utilizzata per chiamare il metodo printname:

print(my_object.printname())

Questo produrrà l'output "Luca".

Scrivere classi in Python può sembrare complesso all'inizio, ma con la pratica diventerà semplice. Basta seguire questi passaggi: definire la struttura di base, inizializzare le variabili/oggetti necessari e aggiungere i metodi necessari. Con l'esperienza acquisita, scrivere classi diventerà un'abilità naturale.