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.
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.
Täck dina kodningsbaser med Python -undantag.
Läs Nästa
- Programmering
- Programmering
- Pytonorm
- Programmeringsspråk
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.
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