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
Oefeninstructies
Definieer de klasse Point met:
- Twee attributen,
xeny– de coördinaten van het punt in het vlak; - Een constructor die twee argumenten accepteert,
xeny, die de overeenkomende attributen initialiseren. Deze argumenten moeten standaard de waarde0.0hebben; - 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 attribuuty(geen typefout!) in op de negatieve waarde vany, - als
axis="y", stelt het het attribuutxin op de negatieve waarde vanx, - voor elke andere waarde van
axiswordt een foutmelding geprint.
- accepteert één argument
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