Как реализовать класс Point?
Реализуйте класс Point (точка). У этого класса должны быть
- конструктор, принимающий два числа x и y, координаты точки на плоскости;
- атрибуты x и y через которые можно будет получить координаты точки;
- метод dist, который принимает еще один объект класса Point и находит эвклидово расстояние между двумя точками.
Импортировать ничего нельзя.
class Point(object):
pass
def __init__(self, x, y):
self.x = x
self.y = y
p1 = Point()
p2 = Point()
x = input()
y = input()
def dist(self):
dist = ((p1.x - p2.x) ^ 2 + (p1.y - p2.y) ^ 2) ** 0.5
return p1.dist(p2)
Понимаю, что ошибка точно есть в использовании атрибутов, но как исправить не могу сообразить.
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Отдельным местами у вас правильное направление мысли, но возникли проблемы с тем как всё собрать в одно.
Немного поколдовал над кодом, попробуйте:
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def dist(self, other):
return ((self.x - other.x) ** 2 + (self.y - other.y) ** 2) ** 0.5
p1_x = int(input("p1.x: "))
p1_y = int(input("p1.y: "))
p2_x = int(input("p2.x: "))
p2_y = int(input("p2.y: "))
p1 = Point(p1_x, p1_y)
p2 = Point(p2_x, p2_y)
print(p1.dist(p2))
Автор решения: Zhihar
→ Ссылка
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def dist(self, point):
distance = ((self.x - point.x)**2 + (self.y - point.y)**2)**0.5
return distance
по хорошему еще бы проверить, что point - это Point и выбросить исключение, если это не так