lettura facile

Le istanze di una classe in Python

In Python, un'istanza di una classe è un oggetto concreto creato secondo la struttura definita dalla classe stessa.

Puoi considerare una classe come un modello per creare degli oggetti che condividono una certa struttura e hanno lo stesso comportamento.

Quando crei un oggetto da una classe, stai creando un'istanza di quella classe.

Nel linguaggo Python per istanziare una classe, si utilizza il nome della classe seguito da parentesi tonde.

Ad esempio, se hai una classe chiamata `Auto` puoi creare un'istanza di essa con `mia_auto = Auto()`.

#definizione della classe
class Auto:
    pass

# Creare un'istanza di Auto
mia_auto = Auto()

Ogni istanza può avere attributi (variabili) dette proprietà che mantengono il suo stato.

Gli attributi possono essere definiti nella classe stessa o possono essere aggiunti dinamicamente a un'istanza specifica.

Ad esempio, se `Auto` ha un attributo `colore`, puoi modificarlo digitando `mia_auto.colore = 'rosso'` e puoi consultarlo scrivendo semplicemente `mia_auto.colore`.

#definizione della classe
class Auto:
    # attributo di classe
    colore= None

# Creare un'istanza di Auto
mia_auto = Auto()

# Assegnare un valore all'attributo "colore" dell'istanza mia_auto
mia_auto.colore = 'rosso'

# Stampa il contenuto dell'attributo
print(mia_auto.colore)

rosso

Volendo puoi anche aggiungere dinamicamente all'oggetto un attributo non presente nella classe.

In questo caso, l'attributo viene aggiunto solo all'oggetto in questione.

#definizione della classe
class Auto:
    # attributo di classe
    colore= None

# Creare un'istanza di Auto
mia_auto = Auto()

# Assegnare un valore all'attributo "colore" dell'istanza mia_auto
mia_auto.anno = '2015'

# Stampa il contenuto dell'attributo
print(mia_auto.anno)

2015

Le istanze possono anche avere dei metodi che sono funzioni definite all'interno della classe.

I metodi definiscono un comportamento degli oggetti della classe, possono modificare lo stato dell'istanza o eseguire calcoli utilizzando i valori degli attributi dell'istanza.

Ad esempio, se la classe `Auto` ha un metodo chiamato `descrivi()`, lo puoi chiamare digitando `mia_auto.descrivi()`.

#definizione della classe
class Auto:
    # attributo di classe (proprietà)
    colore= None

    # attributo eseguibile (metodo)
    def descrivi(self):
         print(f"Un'auto di colore {self.colore}")

# Creare un'istanza di Auto
mia_auto = Auto()

# Assegnare un valore all'attributo "colore" dell'istanza mia_auto
mia_auto.colore = 'rosso'

# Chiamare il metodo descrivi() per stampare il colore dell'auto
mia_auto.descrivi()

Quando chiami il metodo descrivi(), questo accede alla proprietà "colore" dell'oggetto "mia_auto" e stampa sullo schermo il seguente messaggio:

Un'auto di colore rosso

All'interno dei metodi della classe, la parola chiave `self` è usata per riferirsi all'istanza su cui il metodo è chiamato.

Questo permette ai metodi di accedere agli attributi e ad altri metodi dello stesso oggetto.

Il metodo init

La classe può includere un metodo speciale chiamato `__init__()` che viene chiamato automaticamente quando un'istanza viene creata.

Questo metodo è comunemente usato per inizializzare gli attributi dell'istanza.

Esempio

Ad esempio, aggiungi un inizializzatore alla classe `Auto` per definire l'attributo `colore'.

class Auto:
   # inizializzazione
   def __init__(self, colore):
       self.colore = colore


   # metodo
   def descrivi(self):
       return f"Un'auto di colore {self.colore}"

# Creare un'istanza di Auto specificando il colore
mia_auto = Auto("rosso")

# Chiama il metodo "descrivi"
print(mia_auto.descrivi())

Un'auto di colore rosso

In questo modo puoi inserire il colore dell'oggetto direttamente tra le parentesi tonde al momento della creazione dell'istanza.

Questo esempio mostra come una classe funge da modello per creare oggetti (`mia_auto`) con specifici attributi e comportamenti.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin