Всем здравствуйте. Помогите пожалуйста разобраться с заданием)
Не могу до конца понять, как это всё выстроить.
Класс Point, принимает 2 параметра, эти параметры являются точкой в системе координат X и Y.
Дальше, класс Line, необходимо реализовать композицию и добавить метод length. Надеюсь композицию реализовал правильно. Метод length тоже реализован вроде как правильно у меня. Что должно быть в классе Shape? Просто добавить 2 метода, а после в других в классах, которые будут наследоваться от него, нужно будет переопределить эти 2 метода? Плюс эти 2 метода "должны быть аксессорами(@property)". Это декоратор как я понял.
Помогите разобраться пожалуйста). Затык возник ещё и Square. Он наследуется от Line и Shape. Соответственно должны быть 2 точки(4 параметра), должен работать метод length из Line, ну и переопределить методы area и perimeter?
class Point():
def __init__(self, x:float, y:float):
self.x = x
self.y = y
print(f'Точка с координатами x: {self.x} и y: {self.y}')
class Line():
def __init__(self,x,y,x1,y1):
self.p1 = Point(x,y)
self.p2 = Point(x1,y1)
def length(self):
print(f'Длина линии равна {self.p2.x - self.p1.x}')
x = Line(3,4,11,14.3)
x.length()
class Shape():
def __init__(self, x:float, y:float):
self.x = x
self.y = y
def area(self):
print('Площадь')
def perimeter(self):
print('Периметр')
class Square(Line, Shape):
def __init__(self,x:float, y:float, x1: float, y1: float):
self.x = x
self.y = y
self.x1 = x1
self.y1 = y1
def length(self):
return super().length()
# class Rect():
# pass
# class Cube():
# pass
# class Shape():
# pass