Scrie o clasă de la zero
Ești un dezvoltator Python care lucrează la un pachet de vizualizare. Pentru orice element dintr-o vizualizare, vrei să poți determina poziția elementului, distanța față de alte elemente și să aplici cu ușurință o oglindire orizontală sau verticală.
Cel mai simplu element al oricărei vizualizări este un punct. În acest exercițiu, vei scrie de la zero o clasă pentru un punct în plan.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte în Python
Instrucțiuni pentru exercițiu
Definește clasa Point care să aibă:
- Două atribute,
xșiy– coordonatele punctului în plan; - Un constructor care acceptă două argumente,
xșiy, ce inițializează atributele corespunzătoare. Aceste argumente trebuie să aibă valoarea implicită0.0; - O metodă
distance_to_origin()care returnează distanța de la punct la origine. Formula este \(\sqrt{x^2 + y^2}\). - O metodă
reflect(), care oglindește punctul față de axa x sau y:- acceptă un argument
axis, - dacă
axis="x", setează atributuly(nu este o greșeală de scriere!) la valoarea negativă a atributuluiy, - dacă
axis="y", setează atributulxla valoarea negativă a atributuluix, - pentru orice altă valoare a lui
axis, afișează un mesaj de eroare.
- acceptă un argument
Notă: Poți folosi funcția sqrt() din pachetul numpy sau math, dar indiferent de pachetul ales, nu uita să-l imporți înainte de a începe definiția clasei!
Pentru a-ți verifica soluția, ar trebui să poți rula următorul cod fără erori:
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
și să obții rezultatul
(-3.0,0.0)
5.0
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Write the class Point as outlined in the instructions