IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

Definisci la classe Point che ha:

  • Due attributi, x e y - le coordinate del punto sul piano;
  • Un costruttore che accetta due argomenti, x e y, che inizializzano i corrispondenti attributi. Questi argomenti devono avere valore predefinito 0.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'attributo y (non è un refuso!) al valore negativo di y,
    • se axis="y", imposta l'attributo x al valore negativo di x,
    • per qualsiasi altro valore di axis, stampa un messaggio di errore. Riflessione di un punto rispetto agli assi y e x

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
Modifica ed esegui il codice