Middle
153
Абстрактты әдіс дегеніміз не?
AI-дан жауап
sobes.tech AI
Бұл абстрактілі класс ішіндегі әдіс, ол жарияланған, бірақ жүзеге асырылмаған. Ол міндетті түрде (қажет болса) кез келген мұрагер классінде қайта анықталуы (жүзеге асырылуы) керек.
Python-да abc модулі арқылы қолдану мысалы:
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-тің экземплярын жасау мүмкін емес:
# s = Shape() # TypeError қателігін тудырады
Негізгі ұғымдар:
@abstractmethodдекораторы арқылы анықталады.- Абстрактілі класс ішінде орналасады (наследник кластар
ABCнемесеABCMetaметаклассымен). - Класс иерархиясында интерфейстердің бірізділігін қамтамасыз ету үшін арналған.
- Абстрактілі әдіс болуы класс абстрактілі деп саналады, тіпті ол
ABC-дан мұрагерлік алмаса да.