LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

Definiere die Klasse Point, die Folgendes hat:

  • Zwei Attribute, x und y – die Koordinaten des Punkts in der Ebene;
  • Einen Konstruktor, der zwei Argumente x und y akzeptiert und damit die entsprechenden Attribute initialisiert. Diese Argumente sollten den Standardwert 0.0 haben;
  • 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 Attribut y (kein Tippfehler!) auf den negativen Wert des y-Attributs,
    • wenn axis="y", setzt sie das Attribut x auf den negativen Wert des x-Attributs,
    • für jeden anderen Wert von axis wird eine Fehlermeldung ausgegeben. Spiegelung eines Punkts an der y- und x-Achse

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
Code bearbeiten und ausführen