Creare classi e oggetti in Python

Le classi di Python sono strutture che fungono da modello o prototipo per la creazione di oggetti. Possono essere utilizzate per scrivere codice riutilizzabile sotto forma di attributi e metodi.

Cosa sono le classi di Python?

Una classe è un concetto astratto che definisce gli attributi e i metodi che un oggetto può avere. Le classi di Python servono come modello per la creazione di oggetti concreti che svolgono il ruolo di istanze di questa classe. Per fare un esempio concreto, una classe può chiamarsi Automobile, avere come attributi il colore e la casa produttrice e come metodi __guidare__ e __frenare__.

Ogni oggetto di una classe può avere valori propri per quanto riguarda gli attributi, ma condivide i metodi e il quadro comportamentale di base con altre istanze della stessa classe. Ad esempio, possiamo creare l’oggetto mia_auto all’interno della classe auto e dargli come attributi il colore __rosso__ e la casa produttrice __Toyota__. I metodi __guidare__ e __frenare__ della classe vengono automaticamente trasferiti all’istanza.

Come creare classi in Python

In Python le classi si definiscono utilizzando la parola chiave class.

lass MyClass:
    # Constructor method called when creating an object
    def __init__(self, attribute1, attribute2):
        self.attribute1 = attribute1
        self.attribute2 = attribute2
    
    # Method defined within the class
    def my_method(self):
        return f"Attribute 1: {self.attribute1}, Attribute 2: {self.attribute2}"
python

In questo codice Python, stiamo creando una classe chiamata MyClass. Questa ha un costruttore __init__ che viene richiamato al momento della creazione di un oggetto e inizializza due attributi, attribute1 e attribute2. Il metodo my_method restituisce una stringa formattata contenente i valori di questi attributi.

Per derivare un oggetto da questa classe, occorre utilizzare il nome della classe seguito da parentesi:

object1 = MyClass("Value 1", "Value 2")
result = object1.my_method()
python
Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

Esempi di utilizzo delle classi in Python

Le classi di Python possono creare sistemi complessi e relazioni tra entità diverse. Di seguito ti presentiamo alcuni modi per lavorare con le classi in Python.

La funzione __str()__

La funzione __str__() è un metodo speciale che può essere definito all’interno delle classi di Python. Quando viene implementata, restituisce una stringa che rappresenta una rappresentazione user-friendly di un oggetto. Puoi utilizzare la funzione str() direttamente sull’oggetto o combinarla con un’istruzione print().

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"
person1 = Person("Alice", 30)
print(person1) # Output: Name: Alice, Age: 30
python

Nel nostro codice, il metodo __str__() della classe person crea una stringa formattata contenente il nome e l’età di una persona. Eseguendo la funzione print(person1), viene automaticamente richiamato il metodo __str__() dell’oggetto person1 e viene generata la stringa restituita da questo metodo.

Definire i metodi nelle classi di Python

In Python, hai la possibilità di definire metodi all’interno di una classe per eseguire operazioni sugli oggetti da essa contenuti. Questi metodi possono poi essere richiamati dagli oggetti creati.

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    def perimeter(self):
        return 2 * (self.length + self.width)
# Creating an object of the class
my_rectangle = Rectangle(5, 10)
# Calling methods of the object
area = my_rectangle.area()
perimeter = my_rectangle.perimeter()
# Printing the calculated values
print("Area =", area) # Output: Area = 50
print("Perimeter =", perimeter) # Output: Perimeter = 30
python

Nell’esempio, creiamo la classe Rectangle, che include i due metodi area() e perimeter(). Questi vengono utilizzati per calcolare l’area e il perimetro di un rettangolo in base ai valori di lunghezza e larghezza forniti al momento dell’inizializzazione dell’oggetto. Nel linguaggio Python, self all’interno di un metodo di una classe rappresenta un riferimento all’oggetto corrente a cui il metodo viene applicato.

Dopo aver creato l’oggetto my_rectangle con una lunghezza di 5 e una larghezza di 10, richiamiamo i metodi area() e perimeter() su questo oggetto per calcolare i valori corrispondenti.

Modificare le proprietà degli oggetti

L’operatore punto . può essere utilizzato per accedere agli attributi specifici dell’oggetto e aggiornarne i valori. È possibile assegnare nuovi valori direttamente all’attributo.

person1.name = "Sarah"
person1.age = 35
python

La parola chiave del consente di cancellare le proprietà di un oggetto.

del person1.name
python
N.B.

Ricorda che le variabili di istanza sono diverse dalle variabili di classe in Python. Le variabili di classe sono definite fuori dal costruttore e possono essere modificate solo tramite il nome della classe.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top