Come creare una classe in Python (programmazione orientata agli oggetti)

Scopri come creare una classe in Python. Padroneggia il costruttore __init__, i metodi di istanza, la parola chiave self e l'istanziazione degli oggetti.

Prova questa soluzione nell'editor

Panoramica

La programmazione orientata agli oggetti (OOP) è un potente paradigma utilizzato per modellare entità del mondo reale, strutturare applicazioni e promuovere la riusabilità del codice. In Python, tutto è un oggetto e le classi sono i progetti da cui vengono creati i singoli oggetti. La creazione di una classe consente di raggruppare insieme attributi e funzioni dei dati.

Per definire una classe, si utilizza la parola chiave `class` seguita dal nome della classe (convenzionalmente scritto in PascalCase). All'interno della classe, il metodo più importante è il costruttore: `__init__(self, ...)`. Questo speciale metodo magico viene eseguito automaticamente quando si istanzia la classe, inizializzando gli attributi dei dati iniziali dell'oggetto.

Il parametro "self" rappresenta l'istanza specifica della classe che stai attualmente creando o modificando. Ogni metodo di istanza all'interno della classe deve accettare "self" come primo argomento. I metodi di istanza sono funzioni definite all'interno della classe che operano sugli attributi dell'oggetto, consentendo un incapsulamento pulito della logica.

Codice e output di esecuzione

Questo script dimostra la creazione di una classe, la definizione di proprietà, i metodi di istanza della classe e la creazione di oggetti.

create_class.py
Prova nell'editor
# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
Uscita terminale
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

Implementazione passo dopo passo

  • Utilizzare la parola chiave class per dichiarare il modello di classe.
  • Definire il costruttore __init__(self, ...) per impostare gli attributi iniziali.
  • Aggiungi metodi di istanza che accettano self come primo parametro per funzionare con lo stato dell'oggetto.
  • Chiama ClassName(...) per creare un'istanza e creare una nuova istanza dell'oggetto.

Domande frequenti

Cosa rappresenta il parametro self?

Si riferisce all'istanza specifica dell'oggetto creato o manipolato. È necessario associare gli attributi all'istanza.

Una classe può avere attributi condivisi tra tutte le istanze?

Sì, questi sono attributi di classe. Definiscili direttamente sotto l'intestazione della classe (all'esterno di __init__) e accedi utilizzando ClassName.attribute.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.