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
Instrukcje do ćwiczenia
Zdefiniuj klasę Point, która ma:
- Dwa atrybuty,
xiy– współrzędne punktu na płaszczyźnie; - Konstruktor, który przyjmuje dwa argumenty,
xiy, 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 atrybuty(to nie pomyłka!) na wartość przeciwną do atrybutuy, - jeśli
axis="y", ustawia atrybutxna wartość przeciwną do atrybutux, - dla każdej innej wartości
axiswyświetla komunikat o błędzie.
- przyjmuje jeden argument
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