НачатьНачать бесплатно

Напишите класс с нуля

Вы — Python-разработчик, создающий пакет для визуализации. Для каждого элемента визуализации нужно уметь определять его положение, расстояние до других элементов, а также легко выполнять горизонтальное или вертикальное отражение.

Самый базовый элемент любой визуализации — это точка. В этом упражнении вы напишете класс для точки на плоскости с нуля.

Это упражнение является частью курса

Объектно-ориентированное программирование на Python

Посмотреть курс

Инструкции к упражнению

Определите класс Point, который содержит:

  • Два атрибута, x и y — координаты точки на плоскости;
  • Конструктор, принимающий два аргумента, x и y, которые инициализируют соответствующие атрибуты. Значение этих аргументов по умолчанию должно быть 0.0;
  • Метод distance_to_origin(), который возвращает расстояние от точки до начала координат. Формула: \(\sqrt{x^2 + y^2}\).
  • Метод reflect(), отражающий точку относительно оси x или y:
    • принимает один аргумент axis,
    • если axis="x", устанавливает атрибут y (это не опечатка!) равным противоположному значению атрибута y,
    • если axis="y", устанавливает атрибут x равным противоположному значению атрибута x,
    • для любого другого значения axis выводит сообщение об ошибке. Отражение точки относительно осей y и x

Примечание: Вы можете использовать функцию sqrt() из пакета numpy или math — на ваш выбор. Но какой бы пакет вы ни выбрали, не забудьте импортировать его перед определением класса!


Чтобы проверить правильность вашего решения, запустите следующий код — он должен выполниться без ошибок:

pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())

и вернуть результат

(-3.0,0.0)
5.0

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Write the class Point as outlined in the instructions
Редактировать и запускать код