Абстрактният клас е план за сродни класове. Той не може да бъде създаден, но може да бъде достъпен само чрез наследяване. Подклас, който наследява абстрактен клас, е необходим за прилагане на неговите абстрактни методи. В противен случай компилаторът ще отбележи грешка.

Абстрактните методи са методи без изпълнение. Абстрактният клас може да има абстрактни методи или конкретни (нормални) методи.

Python не поддържа директно абстрактни методи, но можете да получите достъп до тях чрез abc (абстрактен базов клас) модул.

Използване на модула abc в Python

За да дефинирате абстрактен клас в Python, трябва внос модул abc.

Вижте примера по -долу:

от abc внос ABC
клас AbstractClassName (ABC):
пропуск

Забележете ключовата дума пропуск. Тази ключова дума се използва за замяна на празен код. Ако го оставите, ще възникне грешка при компилацията.

Свързани: Ще направи ли Джулия оферта за трона на Python?

Определения на класове, определения на методи, цикли и ако изявленията очакват внедряване на код. Така че, ако ги изоставите, се получава грешка при компилирането. За да избегнете това, използвайте

instagram viewer
пропуск за да замените празния код.

За да дефинирате абстрактен метод в Python, използвайте @abstractmethod декоратор:

от abc внос ABC, абстрактен метод
клас AbstractClassName (ABC):
@abstractmethod
def abstractMethod (self):
пропуск

На този етап би било добре да споменем, че - за разлика от Java - абстрактните методи в Python могат да имат реализация. Тази реализация може да бъде достъпна в метода на замяна, като се използва супер () метод.

внос abc
клас AbstractClass (ABC):
def __init __ (себе си, стойност):
self.value = стойност
super () .__ init __ ()
@abc.abstractmethod
def some_action (self):
print ("Това е родителската реализация.")
клас MySubclass (AbstractClassExample):
def some_action (self):
super (). some_action ()
print ("Това е реализацията на подкласа. ")
x = MySubclass ()
x.some_action ()

Интересно е да се отбележи, че можете да дефинирате конструктор в абстрактен клас.

На ред 9 можете да наблюдавате това @abc.abstractmethod е използван като декоратор на абстрактни методи. Това е друг начин да направите това, различен от предишната форма. Забележете също, че ред 1 е по -кратък (внос abc) от предишния внос на ред 1, който сте използвали.

Всичко е въпрос на избор. Въпреки това, мнозина могат да намерят втория метод за по -кратък.

Обработка на изключения в Python

Забележете, че няма начин за улавяне на грешки в примера на кода, даден по -горе. Грешките се появяват по-често и не, а наличието на надежден начин да ги получите може да промени играта.

Тези събития, които нарушават нормалния поток на програмата, се наричат ​​„изключения“, а управлението им се нарича „обработка на изключения“. Следващото в списъка ви за четене на Python трябва да бъде обработка на изключения.

ДялТуителектронна поща
Как да се справим с изключенията в Python

Покрийте кодиращите си бази с изключения на Python.

Прочетете Напред

Свързани теми
  • Програмиране
  • Програмиране
  • Python
  • Програмни езици
За автора
Джером Дейвидсън (24 статии са публикувани)

Джером е щатен писател в MakeUseOf. Той обхваща статии за програмиране и Linux. Той също е ентусиаст на крипто и винаги следи крипто индустрията.

Още от Джером Дейвидсън

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате