Apstraktna klasa je nacrt za srodne klase. Ne može se instancirati, već mu se može pristupiti samo nasljeđivanjem. Podklasa koja nasljeđuje apstraktnu klasu potrebna je za implementaciju njenih apstraktnih metoda. U protivnom će prevoditelj označiti grešku.
Apstraktne metode su metode bez implementacije. Apstraktna klasa može imati apstraktne metode ili konkretne (normalne) metode.
Python ne podržava izravno apstraktne metode, ali možete im pristupiti putem abc (sažetak osnovne klase) modul.
Korištenje abc modula u Pythonu
Da biste definirali apstraktnu klasu u Pythonu, morate uvoz modul abc.
Pogledajte primjer ispod:
iz ABC uvoza ABC
klasa AbstractClassName (ABC):
proći
Uočite ključnu riječ proći. Ova se ključna riječ koristi za označavanje praznog koda. Ako to izostavite, doći će do pogreške pri sastavljanju.
Povezano: Hoće li Julia dati ponudu za Pythonovo prijestolje?
Definicije klasa, definicije metoda, petlje i ako izrazi očekuju implementaciju koda. Dakle, njihovo izostavljanje daje grešku pri sastavljanju. Da biste to izbjegli, upotrijebite proći za zamjenu praznog koda.
Da biste definirali apstraktnu metodu u Pythonu, koristite @apstraktna metoda dekorater:
iz abc uvoza ABC, abstractmethod
klasa AbstractClassName (ABC):
@apstraktna metoda
def abstractMethod (self):
proći
U ovom trenutku bilo bi dobro spomenuti da - za razliku od Jave - apstraktne metode u Pythonu mogu imati implementaciju. Ovoj implementaciji se može pristupiti metodom nadjačavanja pomoću super() metoda.
uvoz abc
klasa AbstractClass (ABC):
def __init __ (sebe, vrijednost):
self.value = vrijednost
super () .__ init __ ()
@abc.abstractmethod
def some_action (self):
print ("Ovo je nadređena implementacija.")
klasa MySubclass (AbstractClassExample):
def some_action (self):
super (). some_action ()
print ("Ovo je implementacija podklase. ")
x = MySubclass ()
x.some_action ()
Zanimljivo je napomenuti da konstruktor možete definirati u apstraktnoj klasi.
Na retku 9 to možete primijetiti @abc.abstractmethod je korišten kao dekorater apstraktnih metoda. Ovo je još jedan način za to osim prethodnog obrasca. Uočite također da je redak 1 kraći (uvoz abc) nego prethodni uvoz prvog retka koji ste koristili.
Sve je stvar izbora. No, mnogima će druga metoda biti kraća.
Rukovanje iznimkama u Pythonu
Uočite da nema načina za hvatanje pogrešaka u gore navedenom primjeru koda. Greške se češće pojavljuju, a pouzdan način da ih dobijete može promijeniti igru.
Ti se događaji koji ometaju normalan tijek programa nazivaju "iznimke", a njihovo upravljanje naziva se "rukovanje iznimkama". Sljedeće na vašem popisu za čitanje Pythona trebalo bi biti rukovanje iznimkama.
Pokrijte svoje baze kodiranja iznimkama Pythona.
Pročitajte Dalje
- Programiranje
- Programiranje
- Piton
- Programski jezici
Jerome je osobni pisac na MakeUseOfu. On pokriva članke o programiranju i Linuxu. On je također entuzijast za kripto i uvijek prati kripto industriju.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu