En abstrakt klasse er en plan for beslektede klasser. Det kan ikke umiddelbart installeres, men kan bare nås via arv. En underklasse som arver en abstrakt klasse er nødvendig for å implementere sine abstrakte metoder. Ellers vil kompilatoren markere en feil.

Abstrakte metoder er metoder uten implementering. En abstrakt klasse kan ha abstrakte metoder eller konkrete (normale) metoder.

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

Bruke abc -modulen i Python

For å definere en abstrakt klasse i Python, må du import abc -modulen.

Se eksemplet nedenfor:

fra abc import ABC
klasse AbstractClassName (ABC):
sende

Legg merke til søkeordet sende. Dette søkeordet brukes til å stå for tom kode. Hvis du forlater det, vil det oppstå en kompilasjonsfeil.

I slekt: Vil Julia gi et bud på Pythons trone?

Klasse definisjoner, metode definisjoner, sløyfer og hvis utsagn forventer kodeimplementering. Så å la dem være ute gir en samlefeil. For å unngå dette, bruk sende for å erstatte den tomme koden.

For å definere en abstrakt metode i Python, bruk @abstractmethod dekoratør:

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

På dette tidspunktet ville det være godt å nevne at - i motsetning til Java - kan abstrakte metoder i Python ha implementering. Denne implementeringen kan nås på den overordnede metoden ved hjelp av super() metode.

importer abc
klasse AbstractClass (ABC):
def __init __ (selv, verdi):
self.value = verdi
super () .__ init __ ()
@abc.abstractmethod
def some_action (self):
print ("Dette er den overordnede implementeringen.")
klasse MySubclass (AbstractClassExample):
def some_action (self):
super (). noen_handling ()
print ("Dette er implementeringen av underklassen. ")
x = MySubclass ()
x.some_action ()

Det er interessant å merke seg at du kan definere en konstruktør i en abstrakt klasse.

På linje 9 kan du observere det @abc.abstractmethod har blitt brukt som den abstrakte metoden dekoratør. Dette er en annen måte å gjøre det på enn den forrige formen. Legg også merke til at linje 1 er kortere (importer abc) enn den tidligere linje 1 -importen du brukte.

Det er alt et spørsmål om valg. Selv om mange kan finne den andre metoden kortere.

Unntakshåndtering i Python

Legg merke til at det ikke er mulig å fange feil i kodeeksemplet ovenfor. Bugs oppstår oftere enn ikke, og det kan være en spillveksler å ha en pålitelig måte å få dem på.

Disse hendelsene som forstyrrer normal programflyt kalles "unntak", og håndtering av dem kalles "unntakshåndtering". Neste på Python -leselisten bør være unntakshåndtering.

DelekvitringE -post
Hvordan håndtere unntak i Python

Dekk kodingsbaser med Python -unntak.

Les neste

Relaterte temaer
  • Programmering
  • Programmering
  • Python
  • Programmerings språk
Om forfatteren
Jerome Davidson (24 artikler publisert)

Jerome er personalforfatter på MakeUseOf. Han dekker artikler om programmering og Linux. Han er også en kryptoentusiast og holder alltid oversikt over kryptoindustrien.

Mer fra Jerome Davidson

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere