Взаимодействие объектов экземляров класса
У меня есть код,который описывает точку на плоскости по ее координатам, отображает количество экземпляров и сами точки.
class Point_6():
""" Класс для точек на плоскости"""
@property
def coords(self):
return self.__coord
@ coords.setter
def coords(self, value):
if value < -100:
self.__coord = 0
elif value > 100:
self.__coord = 0
else:
self.__coord = value
def __init__(self, x, y):
self.x = x
self.y = y
Point_6.count += 1
def __del__(self):
Point_6.count -= 1
print("Object destroyed!")
count = 0
@staticmethod
def display_count(): # Отображение количества точек
print(f"Point count = {Point_6.count}")
def display_point(self): # Отображение точки
print(f"Point({self.x}, {self.y})")
def change_coords(self, offset_x, offset_y):
self.x += offset_x # Смещение х на offset_x
self.y += offset_y # Смещение y на offset_y
# Work with object
point_list = [Point_6(10, -2),
Point_6(0, -7),
Point_6(-4, 4),
Point_6(-1, 5)]
по условию задачи нужно расчитать расстояние между второй и четвертой точкой,заданных в списке. Я знаю что расстояние находится по формуле
Но как реализовать это программно?
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
у вас же в экземплярах класса есть члены .x, .y
что вам запрещает сделать так:
def distance(point1, point2):
return ((point1.x - point2.x)**2 + (point1.y - point2.y)**2)**0.5
res = distance(point_list[0], point_list[2])
ну или в сам класс запихнуть данную функцию как метод и вызывать например так:
def distance(self, point):
return ((self.x - point.x)**2 + (self.y - point.y)**2)**0.5
res = point_list[0].distance(point_list[2])
