ComenzarEmpieza gratis

Escribe una clase desde cero

Eres una persona desarrolladora en Python que está creando un paquete de visualización. Para cualquier elemento de una visualización, quieres poder conocer su posición, la distancia a otros elementos y aplicar fácilmente una inversión horizontal o vertical.

El elemento más básico de cualquier visualización es un punto. En este ejercicio, escribirás desde cero una clase para un punto en un plano.

Este ejercicio forma parte del curso

Programación orientada a objetos en Python

Ver curso

Instrucciones del ejercicio

Define la clase Point que tenga:

  • Dos atributos, x y y — las coordenadas del punto en el plano;
  • Un constructor que acepte dos argumentos, x y y, que inicialicen los atributos correspondientes. Estos argumentos deben tener el valor por defecto 0.0;
  • Un método distance_to_origin() que devuelva la distancia desde el punto al origen. La fórmula es \(\sqrt{x^2 + y^2}\).
  • Un método reflect(), que refleje el punto con respecto al eje x o y:
    • acepta un argumento axis,
    • si axis="x", asigna al atributo y (¡no es un error!) el valor negativo de y,
    • si axis="y", asigna al atributo x el valor negativo de x,
    • para cualquier otro valor de axis, imprime un mensaje de error. Reflection of a point with respect to y and x axes

Nota: Puedes usar la función sqrt() del paquete numpy o math, pero elijas el paquete que elijas, no te olvides de importarlo antes de empezar la definición de la clase.


Para comprobar tu trabajo, deberías poder ejecutar el siguiente código sin errores:

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

y obtener la salida

(-3.0,0.0)
5.0

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Write the class Point as outlined in the instructions
Editar y ejecutar código