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.
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.
# 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)User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.comImplementazione 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
Scopri come gestire le eccezioni in Python usando try, tranne, altro e infine blocchi. Scrivi codice Python privo di errori e resistente agli arresti anomali.
Come utilizzare la comprensione delle liste in PythonScopri come utilizzare la comprensione delle liste in Python. Scrivi loop concisi, applica filtri condizionali e crea matrici con una sintassi visiva pulita.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Spiegazione delle variabili Python e dei tipi di dati
Comprendere le variabili Python e i tipi di dati principali (stringhe, numeri interi, float, booleani). Una guida completa per principianti all'assegnazione della memoria in Python.
Foglio informativo sui metodi del dizionario Python
Impara i metodi del dizionario Python. Guida di riferimento completa per inserimenti, recuperi, aggiornamenti e controlli di coppie chiave-valore.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.