Абстрактные классы и методы
Абстрактные классы и методы в Python:
Абстрактный класс:
Описание: Абстрактный класс - это класс, который не может быть инстанциирован (создан объект этого класса напрямую). Его целью является предоставление общего интерфейса для всех классов-наследников. Абстрактные классы создаются с использованием модуля
abc
(Abstract Base Classes).Пример:
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass @abstractmethod def perimeter(self): pass
Абстрактный метод:
Описание: Абстрактный метод - это метод, который объявлен в абстрактном классе, но не предоставляет реализацию. Классы-наследники обязаны предоставить конкретную реализацию для всех абстрактных методов.
Пример:
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass @abstractmethod def perimeter(self): pass class Circle(Shape): def __init__(self, radius): self.radius = radius def area(self): return 3.14 * self.radius ** 2 def perimeter(self): return 2 * 3.14 * self.radius
Использование абстрактного класса и методов:
# Это приведет к ошибке, так как нельзя создать экземпляр абстрактного класса
shape = Shape() # TypeError
# Создание экземпляра класса-наследника
my_circle = Circle(5)
# Вызов абстрактных методов
area_result = my_circle.area()
perimeter_result = my_circle.perimeter()
print(area_result) # Вывод: 78.5
print(perimeter_result) # Вывод: 31.4
Last updated
Was this helpful?