En abstrakt klass är en plan för relaterade klasser. Det kan inte instanseras men kan endast nås genom arv. En underklass som ärver en abstrakt klass krävs för att implementera dess abstrakta metoder. Annars kommer kompilatorn att flagga ett fel.

Abstrakta metoder är metoder utan implementering. En abstrakt klass kan ha abstrakta metoder eller konkreta (normala) metoder.

Python stöder inte direkt abstrakta metoder, men du kan komma åt dem via abc (abstrakt basklass) modul.

Använda abc -modulen i Python

För att definiera en abstrakt klass i Python måste du importera abc -modulen.

Se exemplet nedan:

från abc import ABC
klass AbstractClassName (ABC):
passera

Lägg märke till nyckelordet passera. Detta sökord används för att stå för tom kod. Om du lämnar det kommer det att bli ett kompileringsfel.

Relaterad: Kommer Julia att bjuda på Pythons tron?

Klassdefinitioner, metoddefinitioner, loopar och om uttalanden förväntar sig kodimplementeringar. Så att lämna dem utanför ger ett sammanställningsfel. För att undvika detta, använd passera för att ersätta den tomma koden.

instagram viewer

För att definiera en abstrakt metod i Python, använd @abstractmethod dekoratör:

från abc import ABC, abstrakt metod
klass AbstractClassName (ABC):
@abstractmethod
def abstractMethod (self):
passera

Vid denna tidpunkt skulle det vara bra att nämna att - till skillnad från Java - kan abstrakta metoder i Python ha implementering. Denna implementering kan nås i den överordnade metoden med hjälp av super() metod.

importera abc
klass AbstractClass (ABC):
def __init __ (själv, värde):
self.value = värde
super () .__ init __ ()
@abc.abstractmethod
def some_action (self):
print ("Detta är den överordnade implementeringen.")
klass MySubclass (AbstractClassExample):
def some_action (self):
super (). some_action ()
print ("Detta är implementeringen av underklassen. ")
x = MySubclass ()
x.some_action ()

Det är intressant att notera att du kan definiera en konstruktör i en abstrakt klass.

På rad 9 kan du observera det @abc.abstractmethod har använts som abstrakt metod dekoratör. Detta är ett annat sätt att göra det än den tidigare formen. Lägg också märke till att rad 1 är kortare (importera abc) än den tidigare rad 1 -importen som du använde.

Allt är en valfråga. Men många kan tycka att den andra metoden är kortare.

Undantagshantering i Python

Lägg märke till att det inte går att fånga fel i kodexemplet ovan. Fel uppstår oftare än inte, och att ha ett pålitligt sätt att få dem kan vara en spelväxlare.

Dessa händelser som stör det normala programflödet kallas "undantag", och hantering av dem kallas "undantagshantering". Nästa på din Python -läslista bör vara undantagshantering.

Dela med sigTweetE-post
Hur man hanterar undantag i Python

Täck dina kodningsbaser med Python -undantag.

Läs Nästa

Relaterade ämnen
  • Programmering
  • Programmering
  • Pytonorm
  • Programmeringsspråk
Om författaren
Jerome Davidson (24 artiklar publicerade)

Jerome är personalförfattare på MakeUseOf. Han täcker artiklar om programmering och Linux. Han är också en kryptoentusiast och håller alltid koll på kryptoindustrin.

Mer från Jerome Davidson

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera