Abstraktne klass on seotud klasside plaan. Seda ei saa kohe esile tuua, kuid sellele pääseb juurde ainult pärimise teel. Abstraktsete meetodite rakendamiseks on vaja alamklassi, mis pärib abstraktse klassi. Vastasel juhul märgib kompilaator vea.

Abstraktsed meetodid on meetodid ilma rakendamiseta. Abstraktsel klassil võivad olla abstraktsed meetodid või konkreetsed (normaalsed) meetodid.

Python ei toeta otseselt abstraktseid meetodeid, kuid neile pääsete juurde abc (abstraktne põhiklass) moodul.

Abc -mooduli kasutamine Pythonis

Pythonis abstraktse klassi määratlemiseks peate seda tegema import abc moodul.

Vaadake allolevat näidet:

abc import ABC -st
klassi AbstractClassName (ABC):
üle andma

Pange tähele märksõna üle andma. Seda märksõna kasutatakse tühja koodi tähistamiseks. Selle välja jätmine annab koostamisvea.

Seotud: Kas Julia teeb Pythoni troonile pakkumise?

Klassi definitsioonid, meetodi definitsioonid, silmused ja kui avaldused ootavad koodi rakendamist. Niisiis, nende välja jätmine annab koostamisvea. Selle vältimiseks kasutage üle andma tühja koodi asendamiseks.

Pythonis abstraktse meetodi määramiseks kasutage @abstraktne meetod dekoraator:

abc import ABC, abstraktne meetod
klassi AbstractClassName (ABC):
@abstraktne meetod
def abstractMethod (ise):
üle andma

Siinkohal oleks hea mainida, et erinevalt Java -st võivad Pythoni abstraktsed meetodid olla rakendatud. Sellele rakendusele pääseb juurde alistusmeetodil, kasutades Super() meetod.

import abc
klass AbstractClass (ABC):
def __init __ (ise, väärtus):
ise.väärtus = väärtus
super () .__ init __ ()
@abc.abstractmethod
def some_action (ise):
print ("See on emarakendus.")
klass MySubclass (AbstractClassExample):
def some_action (ise):
super (). some_action ()
print ("See on alamklassi teostus. ")
x = Minu alamklass ()
x.some_action ()

Huvitav on märkida, et konstruktori saate määratleda abstraktses klassis.

9. real saate seda jälgida @abc.abstractmethod on kasutatud abstraktse meetodi dekoraatorina. See on veel üks viis seda teha, välja arvatud eelmine vorm. Pange tähele, et rida 1 on lühem (import abc) kui varasem 1. rea import, mida kasutasite.

Kõik on valiku küsimus. Kuigi paljud võivad leida teise meetodi lühema.

Erandite käsitlemine Pythonis

Pange tähele, et ülaltoodud koodinäites vigu ei saa jäädvustada. Vigu esineb sagedamini kui mitte ja usaldusväärne viis nende hankimiseks võib muutuda.

Neid sündmusi, mis häirivad tavapärast programmivoogu, nimetatakse "eranditeks" ja nende haldamist "erandite käsitlemiseks". Järgmine teie Pythoni lugemisloendis peaks olema erandite käsitlemine.

JagaPiiksumaE -post
Kuidas toimida eranditega Pythonis

Katke oma kodeerimisalused Pythoni eranditega.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Python
  • Programmeerimiskeeled
Autori kohta
Jerome Davidson (Avaldatud 24 artiklit)

Jerome on MakeUseOfi personalikirjanik. Ta hõlmab artikleid programmeerimise ja Linuxi kohta. Ta on ka krüptohuviline ja jälgib alati krüptotööstust.

Veel Jerome Davidsonilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin