2012-04-16 2 views
0

Нужна помощь.Класс Python Desgin

Мой скелет кода на данный момент выглядит следующим образом:

import math 
epsilon = 0.000001 

class Point: 
    def __init__(self, x, y): 
     self._x = x 
     self._y = y 

нужно добавить метод, называемый dist_to_point, который принимает другой точечный объект, р, в качестве аргумента и возвращает расстояние евклидовой между двумя точками. Я могу использовать math.sqrt.

Тестовый пример:

abc = Point(1,2) 
def = Point(3,4) 
abc.dist_to_point(def) ===> 2.8284271 

, как мне это сделать? очень смущенный. Благодарю.

Редактировать: Не домашнее задание. Я понимаю, как добавить методы, но я не знаю, как сделать расчет эвклидовой дистанции в сочетании с self._x и т. д. я запутался там

+0

Является ли это домашнее задание? –

+0

Как вы делаете * что *, точно? Добавить метод? Вы уже написали один, '__init__'. Рассчитать расстояние? Это простое уравнение. –

+0

@CatPlusPlus Я не думаю, что он написал это, я думаю, что это было дано как часть задания. – agf

ответ

0

Если вы говорите, что это не домашнее задание, то требуется прямой ответ. Вот некоторые рабочий код:

import math 
epsilon = 0.000001 

class Point: 
    def __init__(self, x, y): 
     self._x = x 
     self._y = y 
    def dist_to_point(self, other): 
     'Compute the Euclidean distance between two Point objects' 
     delta_x = self._x - other._x 
     delta_y = self._y - other._y 
     return (delta_x ** 2 + delta_y ** 2) ** 0.5 

Пример сессии:

>>> point_abc = Point(1,2) 
>>> point_def = Point(3,4) 
>>> point_abc.dist_to_point(point_def) 
2.8284271247461903 
2

Вам нужно будет добавить метод подписи dist_to_point(self, p). В этом методе вам понадобится реализовать формулу для расстояния между двумя точками в двух пространствах (которая доступна из Википедии, среди других источников).

В вашем методе, вы можете обратиться к координатам точки называется в self._x и self._y. Координаты аргумента будет p._x и p._y.

Этого достаточно, чтобы вы начали?

Смежные вопросы