1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Object-Oriented Programming in Python

Connected

cvičení

Napiš třídu od začátku

Jsi Python vývojář/ka a pracuješ na vizualizačním balíčku. Pro každý prvek vizualizace chceš umět zjistit jeho polohu, vzdálenost od ostatních prvků a snadno provést horizontální nebo vertikální zrcadlení.

Nejzákladnějším prvkem každé vizualizace je jediný bod. V tomto cvičení napíšeš třídu pro bod v rovině úplně od základu.

Pokyny

100 XP

Definuj třídu Point, která bude mít:

  • Dva atributy, x a y – souřadnice bodu v rovině;
  • Konstruktor, který přijímá dva argumenty, x a y, a inicializuje příslušné atributy. Tyto argumenty by měly mít výchozí hodnotu 0.0;
  • Metodu distance_to_origin(), která vrátí vzdálenost bodu od počátku souřadnic. Použij vzorec \(\sqrt{x^2 + y^2}\).
  • Metodu reflect(), která zobrazí bod souměrně podle osy x nebo y:
    • přijímá jeden argument axis,
    • pokud axis="x", nastaví atribut y (to není překlep!) na zápornou hodnotu atributu y,
    • pokud axis="y", nastaví atribut x na zápornou hodnotu atributu x,
    • pro jakoukoli jinou hodnotu axis vypíše chybovou zprávu. Reflection of a point with respect to y and x axes

Poznámka: Funkci sqrt() můžeš použít z balíčku numpy nebo math, ale ať zvolíš cokoli, nezapomeň příslušný balíček importovat ještě před definicí třídy!


Pro ověření správnosti řešení by ti měl následující kód proběhnout bez chyb:

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

a vrátit výstup

(-3.0,0.0)
5.0