Sobes.tech
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-дан мұрагерлік алмаса да.