Периметр вот тебе
class Figure:
def __init__(self, w,h):
self.w = w
self.h = h
def perimeter(self):
return (self.w + self.h) * 2
f = Figure(10,5)
print(f.perimeter())
А дочерние классы, переопределения и декораторы изволь сам...
Интересно, как можно переопределить расчет периметра? Так что ли?
class Figure:
def __init__(self, w,h):
self.w = w
self.h = h
def perimeter(self):
return (self.w + self.h) * 2
class Rectangle (Figure):
def perimeter_n(self):
if self.w < 0 or self.h < 0:
return False
return (f'периметр: {self.perimeter()}')
f1 = Rectangle(10,6)
print(f1.perimeter_n())
f2 = Rectangle(10,-6)
print(f2.perimeter_n())
периметр: 32
False
для расчета периметра. Затем создайте класс «Rectangle» («Прямоугольник»),
который будет наследоваться от класса «Figure» («Фигура») и переопределять
его метод для расчета соответствующей величины. Используйте декоратор для
проверки корректности вводимых параметров (например, сторона не может
быть отрицательным числом).