Zacznij terazZacznij za darmo

Napisz klasę od podstaw

Jesteś programistą Pythona tworzącym pakiet do wizualizacji. Dla każdego elementu wizualizacji chcesz móc określić jego pozycję, odległość od innych elementów oraz łatwo wykonywać odbicia poziome lub pionowe.

Najprostszym elementem każdej wizualizacji jest pojedynczy punkt. W tym ćwiczeniu napiszesz od podstaw klasę reprezentującą punkt na płaszczyźnie.

To ćwiczenie jest częścią kursu

Programowanie obiektowe w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

Zdefiniuj klasę Point, która ma:

  • Dwa atrybuty, x i y – współrzędne punktu na płaszczyźnie;
  • Konstruktor, który przyjmuje dwa argumenty, x i y, inicjalizujące odpowiadające im atrybuty. Domyślna wartość obu argumentów powinna wynosić 0.0;
  • Metodę distance_to_origin(), która zwraca odległość punktu od początku układu współrzędnych. Wzór na tę odległość to \(\sqrt{x^2 + y^2}\).
  • Metodę reflect(), która odbija punkt względem osi x lub y:
    • przyjmuje jeden argument axis,
    • jeśli axis="x", ustawia atrybut y (to nie pomyłka!) na wartość przeciwną do atrybutu y,
    • jeśli axis="y", ustawia atrybut x na wartość przeciwną do atrybutu x,
    • dla każdej innej wartości axis wyświetla komunikat o błędzie. Odbicie punktu względem osi y i x

Uwaga: Możesz użyć funkcji sqrt() z pakietu numpy lub math – niezależnie od wyboru, nie zapomnij zaimportować pakietu przed definicją klasy!


Aby sprawdzić poprawność rozwiązania, poniższy kod powinien działać bez błędów:

pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())

i zwracać wynik

(-3.0,0.0)
5.0

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Write the class Point as outlined in the instructions
Edytuj i uruchom kod