Scrivi una classe da zero
Sei uno sviluppatore Python che sta scrivendo un pacchetto di visualizzazione. Per ogni elemento di una visualizzazione, vuoi poter indicare la posizione dell'elemento, quanto dista dagli altri elementi e implementare facilmente il ribaltamento orizzontale o verticale.
L'elemento più basilare di qualsiasi visualizzazione è un singolo punto. In questo esercizio, scriverai da zero una classe per un punto su un piano.
Questo esercizio fa parte del corso
Programmazione orientata agli oggetti in Python
Istruzioni dell'esercizio
Definisci la classe Point che ha:
- Due attributi,
xey- le coordinate del punto sul piano; - Un costruttore che accetta due argomenti,
xey, che inizializzano i corrispondenti attributi. Questi argomenti devono avere valore predefinito0.0; - Un metodo
distance_to_origin()che restituisce la distanza dal punto all'origine. La formula è \(\sqrt{x^2 + y^2}\). - Un metodo
reflect(), che riflette il punto rispetto all'asse x o y:- accetta un argomento
axis, - se
axis="x", imposta l'attributoy(non è un refuso!) al valore negativo diy, - se
axis="y", imposta l'attributoxal valore negativo dix, - per qualsiasi altro valore di
axis, stampa un messaggio di errore.
- accetta un argomento
Nota: puoi scegliere di usare la funzione sqrt() dal pacchetto numpy o math, ma qualunque pacchetto tu scelga, non dimenticare di importarlo prima di iniziare a definire la classe!
Per verificare il tuo lavoro, dovresti essere in grado di eseguire il seguente codice senza errori:
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
che deve restituire l'output
(-3.0,0.0)
5.0
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Write the class Point as outlined in the instructions