0

需要一些帮助。

我目前的代码骨架如下所示:

import math
epsilon = 0.000001

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

需要添加一个名为 dist_to_point 的方法,该方法将另一个点对象 p 作为参数并返回两点之间的欧几里德距离。我可以使用 math.sqrt。

测试用例:

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

我该怎么做呢?很困惑。谢谢。

编辑:不是作业。我了解添加方法,但我不知道如何结合 self._x 等进行欧几里德距离计算。我在那里感到困惑

4

2 回答 2

2

您将需要添加一个带有签名的方法dist_to_point(self, p)。在该方法中,您将需要实现两个空间中两点之间的距离公式(可从 Wikipedia 以及其他来源获得)。

在您的方法中,您可以将调用点的坐标称为self._xself._y参数点的坐标将是p._xp._y

这足以让你开始吗?

于 2012-04-16T02:48:05.180 回答
1

如果您说这不是家庭作业,则需要直接回答。这是一些工作代码:

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
于 2012-04-16T03:15:09.600 回答