Schreibe eine Klasse von Grund auf
Du bist Python-Entwickler:in und schreibst ein Visualisierungspaket. Für jedes Element in einer Visualisierung möchtest du die Position des Elements angeben können, den Abstand zu anderen Elementen bestimmen und einen horizontalen oder vertikalen Flip leicht umsetzen.
Das grundlegendste Element jeder Visualisierung ist ein einzelner Punkt. In dieser Übung schreibst du eine Klasse für einen Punkt in der Ebene von Grund auf.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Anleitung zur Übung
Definiere die Klasse Point, die Folgendes hat:
- Zwei Attribute,
xundy– die Koordinaten des Punkts in der Ebene; - Einen Konstruktor, der zwei Argumente
xundyakzeptiert und damit die entsprechenden Attribute initialisiert. Diese Argumente sollten den Standardwert0.0haben; - Eine Methode
distance_to_origin(), die den Abstand vom Punkt zum Ursprung zurückgibt. Die Formel dafür ist \(\sqrt{x^2 + y^2}\). - Eine Methode
reflect(), die den Punkt an der x- oder y-Achse spiegelt:- akzeptiert ein Argument
axis, - wenn
axis="x", setzt sie das Attributy(kein Tippfehler!) auf den negativen Wert desy-Attributs, - wenn
axis="y", setzt sie das Attributxauf den negativen Wert desx-Attributs, - für jeden anderen Wert von
axiswird eine Fehlermeldung ausgegeben.
- akzeptiert ein Argument
Hinweis: Du kannst die Funktion sqrt() entweder aus dem Paket numpy oder math verwenden. Egal welches Paket du wählst, denk daran, es zu importieren, bevor du mit der Klassendefinition beginnst!
Um deine Lösung zu prü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 folgende Ausgabe erhalten:
(-3.0,0.0)
5.0
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Write the class Point as outlined in the instructions