Une classe abstraite est un modèle pour les classes apparentées. Il ne peut pas être instancié mais n'est accessible que par héritage. Une sous-classe qui hérite d'une classe abstraite est requise pour implémenter ses méthodes abstraites. Sinon, le compilateur signalera une erreur.

Les méthodes abstraites sont des méthodes sans implémentation. Une classe abstraite peut avoir des méthodes abstraites ou des méthodes concrètes (normales).

Python ne prend pas directement en charge les méthodes abstraites, mais vous pouvez y accéder via le abc (classe de base abstraite).

Utiliser le module abc en Python

Pour définir une classe abstraite en Python, vous devez importer le module abc.

Voir l'exemple ci-dessous:

de abc importer ABC
classe AbstractClassName (ABC) :
passe

Remarquez le mot-clé passe. Ce mot-clé est utilisé pour remplacer le code vide. Le laisser de côté donnera une erreur de compilation.

En rapport: Julia fera-t-elle une offre pour le trône de Python ?

Définitions de classes, définitions de méthodes, boucles et

instagram viewer
si les instructions attendent des implémentations de code. Donc, les laisser de côté donne une erreur de compilation. Pour éviter cela, utilisez passe pour remplacer le code vide.

Pour définir une méthode abstraite en Python, utilisez le @méthodeabstraite décorateur:

de abc importer ABC, méthode abstraite
classe AbstractClassName (ABC) :
@méthodeabstraite
def abstractMethod (auto):
passe

À ce stade, il serait bon de mentionner que, contrairement à Java, les méthodes abstraites en Python peuvent avoir une implémentation. Cette implémentation est accessible dans la méthode de redéfinition à l'aide de la super() méthode.

importer abc
classe ClasseAbstraite (ABC) :
def __init__(self, valeur):
self.value = valeur
super().__init__()
@abc.abstractmethod
def some_action (self):
print("Ceci est l'implémentation parent.")
class MySubclass (AbstractClassExample):
def some_action (self):
super().some_action()
print("Ceci est l'implémentation de la sous-classe. ")
x = MaSous-classe()
x.une_action()

Il est intéressant de noter que vous pouvez définir un constructeur dans une classe abstraite.

A la ligne 9, vous pouvez observer que @abc.abstractmethod a été utilisé comme décorateur de méthode abstraite. C'est une autre façon de le faire que la forme précédente. Notez également que la ligne 1 est plus courte (importer abc) que l'ancien import de ligne 1 que vous avez utilisé.

Tout est une question de choix. Cependant, beaucoup peuvent trouver la deuxième méthode plus courte.

Gestion des exceptions en Python

Notez qu'il n'y a aucun moyen de capturer les erreurs dans l'exemple de code donné ci-dessus. Les bugs se produisent le plus souvent, et avoir un moyen fiable de les obtenir peut changer la donne.

Ces événements qui perturbent le déroulement normal du programme sont appelés « exceptions » et leur gestion est appelée « traitement des exceptions ». Le prochain sur votre liste de lecture Python devrait être la gestion des exceptions.

PartagerTweeterE-mail
Comment gérer les exceptions en Python

Couvrez vos bases de codage avec des exceptions Python.

Lire la suite

Rubriques connexes
  • La programmation
  • La programmation
  • Python
  • Langages de programmation
A propos de l'auteur
Jérôme Davidson (24 articles publiés)

Jérôme est rédacteur chez MakeUseOf. Il couvre des articles sur la programmation et Linux. Il est également un passionné de crypto et garde toujours un œil sur l'industrie de la crypto.

Plus de Jerome Davidson

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner