Aan de slagGa gratis aan de slag

Schrijf een klasse vanaf nul

Je bent een Python-ontwikkelaar die een visualisatiepakket schrijft. Voor elk element in een visualisatie wil je de positie kunnen achterhalen, zien hoe ver het van andere elementen afligt en eenvoudig horizontaal of verticaal kunnen spiegelen.

Het meest basale element van elke visualisatie is een enkel punt. In deze oefening schrijf je vanaf nul een klasse voor een punt in een vlak.

Deze oefening maakt deel uit van de cursus

Objectgeoriënteerd programmeren in Python

Cursus bekijken

Oefeninstructies

Definieer de klasse Point met:

  • Twee attributen, x en y – de coördinaten van het punt in het vlak;
  • Een constructor die twee argumenten accepteert, x en y, die de overeenkomende attributen initialiseren. Deze argumenten moeten standaard de waarde 0.0 hebben;
  • Een methode distance_to_origin() die de afstand van het punt tot de oorsprong retourneert. De formule daarvoor is \(\sqrt{x^2 + y^2}\).
  • Een methode reflect(), die het punt spiegelt ten opzichte van de x- of y-as:
    • accepteert één argument axis,
    • als axis="x", stelt het het attribuut y (geen typefout!) in op de negatieve waarde van y,
    • als axis="y", stelt het het attribuut x in op de negatieve waarde van x,
    • voor elke andere waarde van axis wordt een foutmelding geprint. Spiegeling van een punt ten opzichte van de y- en x-as

Opmerking: Je kunt kiezen voor de functie sqrt() uit het pakket numpy of math, maar welk pakket je ook gebruikt, vergeet niet om het te importeren vóór je de klassedefinitie begint!


Om je werk te controleren, moet je de volgende code foutloos kunnen uitvoeren:

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

en de output krijgen

(-3.0,0.0)
5.0

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Write the class Point as outlined in the instructions
Code bewerken en uitvoeren