La programmazione con Python ti offre molte possibilità, che vanno oltre semplici script. Una componente centrale nella programmazione orientata agli oggetti è il lavoro con classi. Esse costituiscono la base per oggetti e ti permettono di creare e gestire strutture dati complesse. In questa guida imparerai come definire le tue classi in Python per utilizzare efficacemente le loro proprietà e metodi.
Principali punti chiave
- Le classi sono la chiave per la programmazione orientata agli oggetti in Python.
- Un inizializzatore (costruttore) ti consente di definire proprietà specifiche durante la creazione di una classe.
- I metodi nelle classi ti permettono di incapsulare funzioni che operano sulle proprietà di un oggetto.
- Il accesso alle proprietà avviene tramite l'operatore punto.
Guida passo-passo
Iniziamo con le basi della definizione di classi in Python. Per prima cosa, devi definire una nuova classe usando la parola chiave class. Puoi farlo nel tuo codice Python come segue:

Qui abbiamo una classe vuota chiamata Employee. Puoi inizialmente definirla senza parametri, il che significa che la classe viene creata senza inizializzazione specifica. Questa è una base importante per assicurarti di non avere errori nella creazione di oggetti in seguito.
Ora crea un oggetto di questa classe. È sufficiente utilizzare il nome della classe e mettere una parentesi vuota:
In questo caso abbiamo un oggetto Employee che abbiamo appena creato. Il passo successivo consiste nell'aggiungere proprietà alla classe. Ad esempio, potresti aggiungere un nome alla classe Employee.
Per prima cosa, devi definire un inizializzatore che funge da costruttore della tua classe. Questo avviene tramite il metodo __init__.

Qui puoi vedere come viene definito un costruttore __init__. Passiamo il nome come parametro e utilizziamo self per memorizzare il nome per l'oggetto attuale.
Ora che hai una proprietà, puoi passare direttamente un nome durante la creazione di un oggetto:

Se ora crei l'oggetto participant con il nome "Jan", il nome verrà memorizzato nell'istanza. Puoi controllare tramite il completamento automatico se il nome è stato impostato correttamente.
Per utilizzare le proprietà, puoi accedervi tramite l'operatore punto:

Questo è il punto in cui puoi accedere alle proprietà del tuo oggetto. In questo caso, stampi il nome del partecipante.
Oltre alle proprietà, puoi anche implementare metodi. Creare un metodo funziona in modo simile a definire una funzione:

Qui definisci il metodo register. Nota ancora che self viene automaticamente passato come parametro al metodo per accedere all'istanza. Durante la registrazione, potremmo ad esempio stampare un messaggio di successo:

Quando chiami il metodo register, appare come segue:

Qui chiami il metodo sull'istanza participant, che fornisce un feedback sulla registrazione.
Infine, possiamo anche passare parametri ai metodi, in modo simile a come facciamo con le funzioni. Ad esempio, un metodo unregister che si aspetta un parametro per la disdetta anticipata:

Qui analizzi se il partecipante desidera disdire anticipatamente e stampi un messaggio corrispondente.
ScreenShot_320
Questo ti mostra quanto possono diventare interattive le tue classi e metodi e come reagiscono agli input.
In conclusione, dovremmo riassumere i principi fondamentali che abbiamo appreso. La definizione di classi consiste nel definire attributi e metodi che sono rilevanti per gli oggetti associati. Il costruttore __init__ è fondamentale per impostare gli attributi durante la creazione dell'oggetto.
Riepilogo – Creare e utilizzare classi proprie in Python
Comprendendo e applicando questi principi fondamentali, puoi sviluppare programmi potenti e flessibili in Python. Puoi creare classi che incapsulano funzioni e caratteristiche specifiche per rendere la programmazione più intuitiva ed efficace.
Domande frequenti
Come definisco una classe in Python?Usa la parola chiave class, seguita dal nome della classe e da un due punti.
Qual è lo scopo del costruttore __init__?Viene utilizzato per eseguire inizializzazioni durante la creazione di un oggetto.
Come accedo alle proprietà di un oggetto?Utilizza l'operatore punto, seguito dal nome della proprietà, ad esempio oggetto.proprietà.
Posso passare più parametri a un metodo?Sì, puoi definire metodi che accettano più parametri.
Posso usare funzioni all'interno delle mie classi?Sì, i metodi non sono altro che funzioni legate a una classe.