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
Instrucciones del ejercicio
Define la clase Point que tenga:
- Dos atributos,
xyy— las coordenadas del punto en el plano; - Un constructor que acepte dos argumentos,
xyy, que inicialicen los atributos correspondientes. Estos argumentos deben tener el valor por defecto0.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 atributoy(¡no es un error!) el valor negativo dey, - si
axis="y", asigna al atributoxel valor negativo dex, - para cualquier otro valor de
axis, imprime un mensaje de error.
- acepta un argumento
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