Escribir una clase desde cero
Eres un desarrollador de Python que escribe un paquete de visualización. Para cualquier elemento de una visualización, quieres poder decir la posición del elemento, a qué distancia está de otros elementos, e implementar fácilmente el volteo horizontal o vertical .
El elemento más básico de cualquier visualización es un único punto. En este ejercicio, escribirás desde cero una clase para un punto de un plano.
Este ejercicio forma parte del curso
Programación orientada a objetos en Python
Instrucciones de ejercicio
Define la clase Point
que tiene:
- Dos atributos,
x
yy
_ - las coordenadas del punto en el plano; - Un constructor que acepta dos argumentos,
x
yy
, que inicializan los atributos correspondientes. Estos argumentos deben tener el valor por defecto de0.0
; - Un método
distance_to_origin()
que devuelve la distancia del punto al origen. La fórmula es \(\sqrt{x^2 + y^2}\). - Un método
reflect()
, que refleja el punto respecto al eje x o y:- acepta un argumento
axis
, - si
axis="x"
, establece el atributoy
(¡no es una errata!) en el valor negativo del atributoy
, - si
axis="y"
, establece el atributox
en el valor negativo del atributox
, - para cualquier otro valor de
axis
, imprime un mensaje de error.
- acepta un argumento
Nota: Puedes elegir utilizar la función sqrt()
del paquete numpy
o del paquete math
, pero sea cual sea el paquete que elijas, no olvides 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 devuelve el resultado_
(-3.0,0.0)
5.0
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Write the class Point as outlined in the instructions