Помогите решить задачу:
Создайте класс «Прямоугольник», у которого необходимо реализовать два поля (ширина и высота) и несколько обязательных методов:
Метод сравнения прямоугольников по площади.
Несколько уточнений:
1. Методы сложения, умножения, деления и т.д. обязательно должны возвращать новый экземпляр класса Прямоугольник!
2. Для умножения, сложения, сравнения, обязательно нужно переопределять "магичиские" методы. Для умножение есть встроенный метод __mul__
3. Когда в результате мат. действий создаете новый экземпляр класса Прямоугольник, то у этого экземпляра, перемножение сторон, должно давать нужную площадь. Это тоже важно
https://ru.onlinemschool.com/math/formula/rectangle/
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def get_square(self):
return self.width * self.height
def __eq__(self, other):
pass
def __add__(self, other):
pass
def __mul__(self, n):
pass
def __str__(self):
pass
r1 = Rectangle(2, 4)
r2 = Rectangle(3, 6)
assert r1.get_square() == 8
assert r2.get_square() == 18
r3 = r1 + r2
assert r3.get_square() == 26
r4 = r1 * 4
assert r4.get_square() == 32
Я сделала задачу, но в
r3 = r1 + r2 assert r3.get_square() == 26 r4 = r1 * 4 assert r4.get_square() == 32
выбивает ошибки: AssertionError
Создайте класс «Прямоугольник», у которого необходимо реализовать два поля (ширина и высота) и несколько обязательных методов:
Метод сравнения прямоугольников по площади.
- Метод сложения прямоугольников (площадь суммарного прямоугольника должна быть равна сумме площадей прямоугольников, которые вы складываете).
- Методы умножения прямоугольника на число n (это должно увеличить площадь базового прямоугольника в n раз).
Несколько уточнений:
1. Методы сложения, умножения, деления и т.д. обязательно должны возвращать новый экземпляр класса Прямоугольник!
2. Для умножения, сложения, сравнения, обязательно нужно переопределять "магичиские" методы. Для умножение есть встроенный метод __mul__
3. Когда в результате мат. действий создаете новый экземпляр класса Прямоугольник, то у этого экземпляра, перемножение сторон, должно давать нужную площадь. Это тоже важно
https://ru.onlinemschool.com/math/formula/rectangle/
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def get_square(self):
return self.width * self.height
def __eq__(self, other):
pass
def __add__(self, other):
pass
def __mul__(self, n):
pass
def __str__(self):
pass
r1 = Rectangle(2, 4)
r2 = Rectangle(3, 6)
assert r1.get_square() == 8
assert r2.get_square() == 18
r3 = r1 + r2
assert r3.get_square() == 26
r4 = r1 * 4
assert r4.get_square() == 32
Я сделала задачу, но в
r3 = r1 + r2 assert r3.get_square() == 26 r4 = r1 * 4 assert r4.get_square() == 32
выбивает ошибки: AssertionError
Код:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def get_square(self):
return self.width * self.height
def __eq__(self, other):
return self.get_square() == other.get_square()
def __add__(self, other):
width = self.width + other.width
height = self.height + other.height
return Rectangle(width, height)
def __mul__(self, n):
width = self.width * n
height = self.height * n
return Rectangle(width, height)
def __str__(self):
return f'Rectangle(width={self.width}, height={self.height})'
r1 = Rectangle(2, 4)
r2 = Rectangle(3, 6)
assert r1.get_square() == 8
assert r2.get_square() == 18
r3 = r1 + r2
assert r3.get_square() == 26
r4 = r1 * 4
assert r4.get_square() == 32