所以在使用类方法时遇到了一些麻烦。我会发布我拥有的所有信息。我需要为给出的问题编写相关方法。
import math
epsilon = 0.000001
class Point(object):
def __init__(self, x, y):
self._x = x
self._y = y
def __repr__(self):
return "Point({0}, {1})".format(self._x, self._y)
第一个问题;我需要添加一个名为 disttopoint 的方法,该方法将另一个点对象 p 作为参数并返回两点之间的欧几里德距离。我可以使用 math.sqrt。
测试用例:
abc = Point(1,2)
efg = Point(3,4)
abc.disttopoint(efg) ===> 2.8284271
第二个问题;添加一个名为 isear 的方法,该方法将另一个点对象 p 作为参数,如果该点与 p 之间的距离小于 epsilon(在上面的类框架中定义)则返回 True,否则返回 False。使用距离点。
测试用例:
abc = Point(1,2)
efg = Point(1.00000000001, 2.0000000001)
abc.isnear(efg) ===> True
第三个问题;添加一个名为 addpoint 的方法,该方法将另一个点对象 p 作为参数并更改此点,使其成为 oint 的旧值和 p 的值之和。
测试用例;
abc = Point(1,2)
efg = Point(3,4)
abc.add_point(bar)
repr(abc) ==> "Point(4,6)