Per definire una classe in Python utilizziamo la dichiarazione class seguita dal nome univoco della classe. All’interno di questa classe specifichiamo poi gli attributi ed i suoi metodi.
Tutte le classi hanno una funzione chiamata __init__(), che viene eseguita quando la classe viene avviata per creare un nuovo oggetto. Questa funzione identifica il costruttore, cioè rappresenta l’inizializzazione delle impostazioni dell’oggetto.
Il costruttore è dichiarato come qualsiasi altro metodo.
La sintassi per definire una classe è dunque questa:
class NomeClasse():
#inizializzazione degli attributi
def __init__(self, parametri):
#attributi
def nome_metodo(self, parametri):
#azioni del metodo
Secondo le regole di programmazione, in tutti i linguaggi, il nome della classe si scrive sempre in maiuscolo, se è un nome composto si utilizza il PascalCase.
I nomi dei metodi sono in minuscolo e se sono costituiti da nomi composti si utilizza lo snake_case ovvero il carattere undescore (_) per separare le parole.
Il parametro self è un riferimento all’istanza corrente della classe ed è utilizzato per accedere alle variabili che appartengono alla classe. In definitiva self identifica la classe stessa e consente di utilizzare gli attributi all’interno dei metodi
Class Python – esempi
Facciamo un primo esempio per comprendere meglio l’utilizzo delle classi. Creiamo una semplice classe rettangolo avente come attributi la base e l’altezza ed il metodo area.
class Rect():
#inizializzazione degli attributi
def __init__(self, base, altezza):
self.base = base
self.altezza = altezza
def area(self):
return self.base * self.altezza
Creiamo poi un’istanza di questa classe:
#rect1 è un'istanza di Rect
rect1 = Rect(4,5)
#stampiamo la base
print("Base =", rect1.base)
#cambiamo la base
rect1.base = 10
print("Nuova Base =", rect1.base)
#stampiamo l'altezza
print("Altezza =", rect1.altezza)
#stampiamo l'area
print("Area =", rect1.area())
Class Python – salvataggio
Di solito le classi venfono salvate in file separati, come i moduli in Python, per poi essere richiamati con questo metodo:
from NomeClasse import *
Nel caso della nostra classe Rect la salviamo in un file di nome ‘Rect.py’ e poi la richiamo in questo modo:
from Rect import *
rect1 = Rect(4,5)
Stiamo attenti ad utilizzare le iniziali maiuscole.
Conclusioni
In questa lezione abbiamo spiegato il concetto di classe in Python e abbiamo visto come crearla attraverso la dichiarazione class.
Alcuni link utili
Indice tutorial sul linguaggio Python
Operazioni con i file in Python
Introduzione ai dizionari in Python
Quali sono i metodi delle liste