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.
Acer Aspire 3 A315-24P-R8DK PC Portatile, Notebook, Processore AMD Ryzen 5 7520U, RAM 8 GB DDR5, 512 GB PCIe NVMe SSD, Display 15.6" FHD LED, Scheda Grafica AMD Radeon, Windows 11 Home, Silver
489,00 € (a partire da 18 Marzo 2024 14:37 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)2022 Apple iPad Air (5a. generazione) (10.9-pollici, Wi-Fi, 64GB) - Blu (Ricondizionato)
529,00 € (a partire da 18 Marzo 2024 15:18 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)WOZIFAN PC Portatile Win 11 Computer 14 Pollici Notebook 6GB+256GB Supporta l' espansione 1TB SSD Intel 2.4G+5G 1080P con mouse senza fili & & Film in lingua siliconica per tastiera(Italiana)-Rosso
209,49 € (a partire da 18 Marzo 2024 14:37 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
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