Erste SchritteKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

Definiere die Klasse Point, die hat:

  • Zwei Attribute, x und y - die Koordinaten des Punktes auf der Ebene;

  • Ein Konstruktor, der zwei Argumente entgegennimmt, x und y, die die entsprechenden Attribute initialisieren. 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 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 Attribut y (kein Tippfehler!) auf den negativen Wert des Attributs y,

    • wenn axis="y", setzt es das Attribut x auf den negativen Wert des Attributs x,

    • für einen anderen Wert von axis, gibt eine Fehlermeldung aus.

Spiegelung eines Punktes in Bezug auf die y- und x-Achse

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
Bearbeiten und Ausführen von Code