1. Nauka
  2. /
  3. Kursy
  4. /
  5. Programowanie obiektowe w Pythonie

Connected

ćwiczenie

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.

Instrukcje

100 XP

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