In un linguaggio orientato agli oggetti, una classe è un pezzo di codice estensibile che rappresenta un modello per creare e utilizzare gli oggetti di quella classe. Un oggetto di una classe si riferisce semplicemente a un'istanza della classe definita.

Nozioni di base sulla classe Python

Nel linguaggio di programmazione Python, ogni pezzo di dati è rappresentato come un'istanza di una classe. Se non hai familiarità con la lingua, consulta il nostro guida per principianti a Python prima di andare avanti.

Una classe fornisce una serie di comportamenti sotto forma di funzioni membro (note anche come metodi), che ha implementazioni comuni a tutte le istanze di quella classe e determina anche il modo in cui le informazioni di stato per la sua istanza sono rappresentate sotto forma di attributi.

Per saperne di più: Metodi di classe in Python: le differenze importanti

Il codice seguente rappresenta un esempio di una classe definita in Python. La classe definita nel codice fornisce un'implementazione di una classe RaceCar.

instagram viewer

Ogni istanza della classe fornisce un modello semplice per diverse marche di auto e contiene il seguente stato informazioni: nome dell'auto, nome del conducente, numero di targa dell'auto, velocità attuale, addebito per eccesso di velocità e colore.

Questa classe di auto, modella un sensore speciale all'interno di ciascuna auto che registra una multa di $ 50 contro il conducente dell'auto se supera il limite di velocità legale di 140 miglia all'ora.

Esempio di una classe (classe auto)


auto di classe:
#Costruttore
# il metodo init è responsabile dell'inizializzazione dei valori delle variabili # istanze nella classe.
def __init __ (self, car_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
self.car_name = car_name
self._driver_name = driver_name
self._license_plate_number = license_plate_number
self._current_speed = current_speed
self._speeding_charge = speeding_charge
self._colour = colore
#Metodi di accesso
# Il metodo get_car_name restituisce il nome dell'auto
def get_car_name (self):
return self._car_name
# Il metodo get_driver_name restituisce il nome del driver
def get_driver_name (self):
return self._driver_name
# Il metodo get_license_plate restituisce la targa dell'auto
def get_license_plate (self):
return self._license_plate
# Il metodo get_current_speed restituisce la velocità corrente alla quale l'auto # si sta muovendo
def get_current_speed (self):
return self._current_speed
# Il metodo get_speeding_charge restituisce l'importo totale di denaro che il file
#driver deve pagare per eccesso di velocità
def get_speeding_charge (self):
return self._speeding_charge
# Il metodo get_colour restituisce il colore della nostra dolce corsa!
def get_colour (self):
return self._colour
Metodi #Mutator
# Il valore set_driver cambia il conducente della nostra macchina.
def set_driver (self, new_driver):
self._driver_name = new_driver
# Il metodo speeding_ticket assicura che al conducente vengano addebitati 50 dollari quando # lui o lei ha rilevato una velocità superiore a 140 miglia all'ora :(
def speeding_ticket (self, current_speed):
se current_speed <= 140:
return False
altro:
self._speeding_charge + = 50
restituire True
# Il metodo make_payment garantisce che l'autista sia in grado di pagare tutto #importo dovuto per l'accelerazione del costo del biglietto.
def make_payment (self, amount_paid):
self._speeding_charge - = importo_pagato

Una spiegazione dell'esempio di classe Python

Il parametro "Self"

In primo luogo, si noti che esiste una differenza tra la firma del metodo dichiarata nella classe e la firma del metodo utilizzata dal programmatore per chiamare la funzione. Ad esempio, il file get_colour il metodo definito nella classe accetta un parametro che è il parametro "self".

Tuttavia, quando il programmatore chiama questo metodo su un'istanza della classe, non fornisce alcun parametro. Questo stesso fenomeno può essere osservato nel metodo speeding_ticket che è definito per prendere due parametri nella classe (cioè self e current_speed), ma il programmatore è in grado di eseguire questo metodo fornendo il valore solo per "current_speed" parametro.

Questo perché lo scopo del parametro "self" fornito è associare il metodo all'istanza dell'oggetto su cui è stato chiamato e non è un valore che deve essere fornito dal programmatore.

Il Costruttore

Un Costruttore di una classe si riferisce al metodo della classe che un utente può chiamare per creare un'istanza di oggetto di quella classe. Nella classe Car, l'utente può creare un'istanza di oggetto utilizzando la seguente sintassi:

#creare la nostra Bugatti :)
Auto ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")

L'esecuzione di questo codice risulta in una chiamata al metodo __init__ nella classe Car. La responsabilità di questo metodo è generare un oggetto auto di credito appena creato con i valori di istanza forniti. Ogni oggetto della classe Car è costituito da sei variabili di istanza che sono:

  • _car_name
  • _driver_name
  • _targa
  • _velocità attuale
  • _speeding_charge
  • _colore

Metodi accessori

Questi sono metodi scritti per accedere alle informazioni sullo stato di un'istanza di un oggetto. Nella classe Car, i metodi di accesso che sono stati scritti sono:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Metodi mutatori:

Questi sono metodi scritti per alterare le informazioni sullo stato di un'istanza di un oggetto. Nella classe Car, i metodi mutator che sono stati scritti sono:

  • set_driver
  • biglietto di accelerazione
  • fare un pagamento

Il concetto di incapsulamento

"Incapsulamento" è un termine utilizzato per descrivere un principio di progettazione orientata agli oggetti in cui i componenti di un programma non dovrebbero rivelare i dettagli interni delle rispettive implementazioni. Per aumentare la tua comprensione del concetto di incapsulamento, consulta il nostro articolo sull'incapsulamento.

Controllo degli errori

La nostra implementazione della classe Car non è robusta poiché è probabile che si blocchi o non funzioni correttamente a seconda dell'input che riceve dal programmatore.

Innanzitutto, nota che non controlliamo i tipi dei parametri dei metodi speeding_ticket e make_payment, né controlliamo i tipi di nessuno dei parametri del costruttore. Ciò potrebbe causare l'arresto anomalo del programma se l'utente fornisce un argomento non previsto. Ad esempio, se l'utente effettua una chiamata come speeding_ticket ("chips ahoy") il programma si blocca perché il tipo che il metodo si aspettava era un numero intero e non una stringa.

Ora comprendi le basi della classe Python

In questo articolo, sei stato introdotto al concetto di una classe Python e di un oggetto di classe Python. Sei stato anche introdotto alle idee su cui è costruita una classe python come: incapsulamento, l'identificatore "auto", metodi di accesso e metodi mutatore.

Con queste informazioni, dovresti essere in grado di creare una semplice classe Python da solo e testarla :)

E-mail
WhatsApp sta applicando l'autenticazione biometrica per desktop e accesso Web

Ora dovrai verificare la tua identità tramite il tuo dispositivo mobile per collegare il tuo account sull'app desktop e web.

Argomenti correlati
  • Programmazione
  • Pitone
Circa l'autore
David Sasu (1 articoli pubblicati)Altro di David Sasu

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.