Una classe astratta è un progetto per classi correlate. Non può essere istanziato ma è possibile accedervi solo tramite ereditarietà. Una sottoclasse che eredita una classe astratta è necessaria per implementare i suoi metodi astratti. In caso contrario, il compilatore segnalerà un errore.

I metodi astratti sono metodi senza implementazione. Una classe astratta può avere metodi astratti o metodi concreti (normali).

Python non supporta direttamente i metodi astratti, ma puoi accedervi tramite il abc (classe base astratta).

Utilizzo del modulo abc in Python

Per definire una classe astratta in Python, devi importare il modulo abc.

Vedi l'esempio qui sotto:

da abc import ABC
class AbstractClassName (ABC):
passaggio

Notare la parola chiave passaggio. Questa parola chiave viene utilizzata per sostituire il codice vuoto. Ometterlo darà un errore di compilazione.

Imparentato: Julia farà un'offerta per il trono di Python?

Definizioni di classe, definizioni di metodo, loop e Se le istruzioni prevedono implementazioni del codice. Quindi, lasciarli fuori dà un errore di compilazione. Per evitare ciò, utilizzare

instagram viewer
passaggio per sostituire il codice vuoto.

Per definire un metodo astratto in Python, usa il @metodoastratto decoratore:

da abc import ABC, metodo astratto
class AbstractClassName (ABC):
@metodoastratto
def abstractMethod (self):
passaggio

A questo punto, sarebbe bene ricordare che, a differenza di Java, i metodi astratti in Python possono avere un'implementazione.. È possibile accedere a questa implementazione nel metodo di override utilizzando il comando super() metodo.

importa abc
classe AbstractClass (ABC):
def __init__(self, valore):
self.value = valore
super().__init__()
@abc.metodoastratto
def some_action (self):
print("Questa è l'implementazione padre.")
class MySubclass (AbstractClassExample):
def some_action (self):
super().qualche_azione()
print("Questa è l'implementazione della sottoclasse. ")
x = MiaSottoclasse()
x.qualche_azione()

È interessante notare che è possibile definire un costruttore in una classe astratta.

Sulla riga 9, puoi osservare che @abc.metodoastratto è stato utilizzato come decoratore del metodo astratto. Questo è un altro modo per farlo diverso dal modulo precedente. Notare anche che la riga 1 è più corta (importa abc) rispetto alla precedente importazione della riga 1 che hai utilizzato.

È tutta una questione di scelta. Tuttavia, molti potrebbero trovare il secondo metodo più breve.

Gestione delle eccezioni in Python

Nota che non c'è modo di catturare gli errori nell'esempio di codice sopra riportato. I bug si verificano il più delle volte e avere un modo affidabile per ottenerli può essere un punto di svolta.

Questi eventi che interrompono il normale flusso del programma sono chiamati "eccezioni" e la loro gestione è chiamata "gestione delle eccezioni". Il prossimo nella tua lista di lettura di Python dovrebbe essere la gestione delle eccezioni.

CondividereTweetE-mail
Come gestire le eccezioni in Python

Copri le tue basi di codifica con le eccezioni Python.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • Programmazione
  • Pitone
  • Linguaggi di programmazione
Circa l'autore
Girolamo Davidson (24 articoli pubblicati)

Jerome è uno scrittore dello staff di MakeUseOf. Si occupa di articoli su programmazione e Linux. È anche un appassionato di criptovalute e tiene sempre d'occhio l'industria delle criptovalute.

Altro da Jerome Davidson

Iscriviti alla nostra Newsletter

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

Clicca qui per iscriverti