У меня есть следующий Python 3.6 Код:избежать дублирования проверки на подклассы
import abc
import math
from abc import ABC
class Shape(ABC):
@abc.abstractmethod
def draw(self, area):
pass
class Square(Shape):
def draw(self, area):
if area < 0:
raise ValueError('Area must be greater or equal than 0.')
print('Square. Side length: %s' % math.sqrt(area))
class Circle(Shape):
def draw(self, area):
if area < 0:
raise ValueError('Area must be greater or equal than 0.')
print('Circle. radius: %s' % math.sqrt(area/math.pi))
Как я могу избежать повторения той же проверки на каждом подклассе?
Спасибо! Я только что отредактировал ваше второе решение, я думаю, вы забыли удалить self._check_area (область) из подклассов. Еще раз спасибо. –