Classi e Oggetti in Python

Python è un linguaggio di programmazione estremamente versatile e potente, e uno dei suoi punti di forza è la programmazione orientata agli oggetti. Comprendere classi e oggetti è fondamentale per scrivere codice modulare, riutilizzabile e ben organizzato. In questa guida, pensata per chi è alle prime armi, scopriremo passo dopo passo come funziona questo concetto in Python.

Cosa sono gli oggetti e le classi in Python?

Una classe è un modello, una sorta di stampo, che ci consente di creare oggetti — ovvero delle istanze concrete con proprietà e comportamenti specifici. Ogni oggetto creato da una classe può avere valori differenti, ma condivide la stessa struttura.

Come si definisce una classe in Python

Per creare una classe, si utilizza la parola chiave class. Ecco un esempio di base:


class Persona:
    
    def saluta(self):
        
        print("Ciao! Piacere di conoscerti.")

In questo esempio, Persona è una classe con un solo metodo: saluta.

Come si crea un oggetto a partire da una classe

Una volta definita la classe, possiamo creare un oggetto (istanza) in questo modo:


persona1 = Persona()
persona1.saluta()

Il metodo saluta verrà eseguito proprio dall’oggetto persona1, che è un’istanza della classe Persona.

Attributi e metodi: cosa sono e come si usano

Le classi possono contenere sia attributi (cioè dati) che metodi (cioè funzioni). Vediamo un esempio con attributi:


class Persona:
    
    def __init__(self, nome, età):
        
        self.nome = nome
        self.età = età

    def saluta(self):
        
        print("Ciao, mi chiamo", self.nome)

In questo caso, nome ed età sono attributi dell’oggetto. Ogni istanza della classe potrà avere valori diversi per questi attributi.

Come funziona il costruttore in una classe Python

Il costruttore è un metodo speciale chiamato __init__, che viene eseguito automaticamente quando viene creato un nuovo oggetto.

Serve per inizializzare l’oggetto, ovvero per assegnare valori iniziali agli attributi:


persona2 = Persona("Luca", 30)
persona2.saluta()

Il metodo __init__ garantisce che ogni oggetto abbia subito tutte le informazioni necessarie per funzionare correttamente.

Come aggiornare o rimuovere proprietà degli oggetti

In Python, è possibile modificare o eliminare gli attributi di un oggetto anche dopo la sua creazione. Ecco come:


# Modifica
persona2.nome = "Marco"

# Eliminazione
del persona2.età

Queste operazioni vanno usate con cautela, soprattutto l’eliminazione, poiché possono compromettere la coerenza dell’oggetto.

Il metodo speciale __str__: rendere un oggetto leggibile

Il metodo __str__ consente di definire cosa deve essere restituito quando stampiamo un oggetto con print. È molto utile per il debug e per una rappresentazione più umana dell’oggetto:


class Persona:
    
    def __init__(self, nome, età):
        
        self.nome = nome
        self.età = età

    def __str__(self):
        
        return f"{self.nome}, {self.età} anni"

Ora, stampando print(persona2), verrà visualizzato qualcosa come Marco, 30 anni.

A cosa serve la parola chiave self in Python

La parola chiave self rappresenta l’istanza corrente della classe. È necessaria per accedere agli attributi e ai metodi all’interno della classe stessa.

Non va confusa con un parametro generico: è un riferimento preciso all’oggetto attuale. Ecco un esempio chiaro:


class Prodotto:
    
    def __init__(self, nome, prezzo):
        
        self.nome = nome
        self.prezzo = prezzo

    def descrizione(self):
        
        return f"{self.nome} costa {self.prezzo}€"

Senza self, non potremmo distinguere tra le variabili della classe e i parametri del metodo.

Corsi correlati

In Arrivo

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

In Arrivo

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

In Arrivo

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

In Arrivo

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.