У меня есть код, который вычисляет евклидово расстояние для меня:
class Point:
"""A point in two-dimensional space."""
def __init__(self, x, y):
self._x = x
self._y = y
def __eq__(self, other):
return self._x == other._x and self._y == other._y
def distance(self, other):
new_x = self._x - other._x
new_y = self._y - other._y
print(new_x,' ',new_y)
return (new_x ** 2 + new_y ** 2) ** 0.5
p1 = Point(10, 4)
p2 = Point(3, 1)
print('Euclidean distance : 'p1.distance(p2))
Однако теперь я хочу вычислить это расстояние, используя магические методы в Python, такие как __sub__
и __pow__
. Мне удалось реализовать __sub__
, но я не знаю, как реализовать для __pow__
и квадратный корень. Это мой код:
class Point_1(object):
def __init__(self, x, y):
self._x = x
self._y = y
def setX(self, x,y):
self._x = x
self._y = y
def getX(self):
return self._x,self._y
def __sub__ (self, other ):
return Point_1(self._x - other._x, self._y - other._y)
def __pow__(self,p):
return Point_1(self._x ** p, self._y **p)
p1 = Point_1(10,4)
print(p1.getX())
p2 = Point_1(3,1)
print(p2.getX())
p3 = p1 - p2
Как я могу реализовать остальную часть формулы, используя магические методы. Я действительно смущен. Помочь бы мне оценили.