Давайте расширим функционал класса, написанного в прошлой задаче.
Реализуйте методы:
move
, который перемещает точку на заданное расстояние по осям x и y;length
, который определяет до переданной точки расстояние, округлённое до сотых.
Примечание
Ваше решение должно содержать только классы и функции.
В решении не должно быть вызовов инициализации требуемых классов.
Пример
Ввод
point = Point(3, 5)
print(point.x, point.y)
point.move(2, -3)
print(point.x, point.y)
Вывод
3 5
5 2
Ввод
first_point = Point(2, -7)
second_point = Point(7, 9)
print(first_point.length(second_point))
print(second_point.length(first_point))
Вывод
16.76
16.76
Решение
Добавляем к нашему классу из прошлого задания методы move() и length(). Метод представляет себой обычную функцию за исключением того, что во входных параметрах обязательно на первом месте присутствует слово self.
Посмотреть код
Решение
Python
class Point:
def __init__(self, x, y) -> None:
self.x = x
self.y = y
def move(self, new_x, new_y):
self.x += new_x
self.y += new_y
def length(self, point):
result = ((point.x - self.x) ** 2 + (point.y - self.y) ** 2) ** 0.5
return round(result, 2)