En abstrakt klasse er en blueprint for beslægtede klasser. Det kan ikke instantieres, men kan kun tilgås via arv. En underklasse, der arver en abstrakt klasse, er påkrævet for at implementere sine abstrakte metoder. Ellers markerer kompilatoren en fejl.

Abstrakte metoder er metoder uden implementering. En abstrakt klasse kan have abstrakte metoder eller konkrete (normale) metoder.

Python understøtter ikke direkte abstrakte metoder, men du kan få adgang til dem via abc (abstrakt basisklasse) modul.

Brug af abc -modulet i Python

For at definere en abstrakt klasse i Python skal du importere abc -modulet.

Se eksemplet herunder:

fra abc import ABC
klasse AbstractClassName (ABC):
passere

Bemærk søgeordet passere. Dette søgeord bruges til at stå for tom kode. Hvis du forlader det, får du en kompilationsfejl.

Relaterede: Vil Julia byde på Pythons trone?

Klasse definitioner, metode definitioner, loops og hvis udsagn forventer kodeimplementeringer. Så at lade dem være ude giver en kompilationsfejl. For at undgå dette skal du bruge passere for at erstatte den tomme kode.

instagram viewer

For at definere en abstrakt metode i Python, brug @abstraktmetode dekoratør:

fra abc import ABC, abstrakt metode
klasse AbstractClassName (ABC):
@abstraktmetode
def abstractMethod (self):
passere

På dette tidspunkt ville det være godt at nævne, at abstrakte metoder i Python - i modsætning til Java - kan have en implementering. Denne implementering kan tilgås i den overordnede metode ved hjælp af super() metode.

import abc
klasse AbstractClass (ABC):
def __init __ (selv, værdi):
self.value = værdi
super () .__ init __ ()
@abc.abstractmethod
def some_action (self):
print ("Dette er den overordnede implementering.")
klasse MySubclass (AbstractClassExample):
def some_action (self):
super (). nogle_handling ()
print ("Dette er implementeringen af ​​underklassen. ")
x = MySubclass ()
x.some_action ()

Det er interessant at bemærke, at du kan definere en konstruktør i en abstrakt klasse.

På linje 9 kan du observere det @abc.abstractmethod er blevet brugt som den abstrakte metode dekoratør. Dette er en anden måde at gøre det på end den tidligere form. Bemærk også, at linje 1 er kortere (import abc) end den tidligere linje 1 -import, du brugte.

Det hele er et spørgsmål om valg. Selvom mange måske finder den anden metode kortere.

Undtagelseshåndtering i Python

Bemærk, at der ikke er nogen måde at fange fejl i kodeeksemplet ovenfor. Bugs forekommer oftere end ikke, og det kan være en game-changer at have en pålidelig måde at få dem på.

Disse hændelser, der forstyrrer det normale programflow, kaldes "undtagelser", og styring af dem kaldes "undtagelseshåndtering". Næste på din Python -læseliste bør være undtagelseshåndtering.

DelTweetE -mail
Sådan håndteres undtagelser i Python

Dæk dine kodningsbaser med Python -undtagelser.

Læs Næste

Relaterede emner
  • Programmering
  • Programmering
  • Python
  • Programmeringssprog
Om forfatteren
Jerome Davidson (24 artikler udgivet)

Jerome er personaleforfatter på MakeUseOf. Han dækker artikler om programmering og Linux. Han er også en kryptoentusiast og holder altid øje med kryptoindustrien.

Mere fra Jerome Davidson

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere