Eine Klasse von Grund auf schreiben
Du bist ein Python-Entwickler, der ein Visualisierungspaket schreibt. Für jedes Element in einer Visualisierung möchtest du die Position des Elements bestimmen können, wie weit es von anderen Elementen entfernt ist, und es einfach horizontal oder vertikal spiegeln können.
Das grundlegendste Element einer jeden Visualisierung ist ein einzelner Punkt. In dieser Übung schreibst du von Grund auf eine Klasse für einen Punkt auf einer Ebene.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Anleitung zur Übung
Definiere die Klasse Point
, die hat:
Zwei Attribute,
x
undy
- die Koordinaten des Punktes auf der Ebene;Ein Konstruktor, der zwei Argumente entgegennimmt,
x
undy
, die die entsprechenden Attribute initialisieren. Diese Argumente sollten den Standardwert0.0
haben;Eine Methode
distance_to_origin()
, die den Abstand vom Punkt zum Ursprung zurückgibt. Die Formel dafür lautet \(\sqrt{x^2 + y^2}\).Eine Methode
reflect()
, die den Punkt in Bezug auf die x- oder y-Achse reflektiert:akzeptiert ein Argument
axis
,wenn
axis="x"
, setzt es das Attributy
(kein Tippfehler!) auf den negativen Wert des Attributsy
,wenn
axis="y"
, setzt es das Attributx
auf den negativen Wert des Attributsx
,für einen anderen Wert von
axis
, gibt eine Fehlermeldung aus.
Hinweis: Du kannst die Funktion sqrt()
entweder aus dem Paket numpy
oder aus dem Paket math
verwenden, aber egal welches Paket du wählst, vergiss nicht, es zu importieren, bevor du mit der Klassendefinition beginnst!
Um deine Arbeit zu überprüfen, solltest du den folgenden Code ohne Fehler ausführen können:
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
und die Ausgabe zurückgeben
(-3.0,0.0)
5.0
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# Write the class Point as outlined in the instructions