從零開始撰寫一個類別
你是一名 Python 開發者,正在撰寫一個視覺化套件。對於視覺化中的任何元素,你需要能夠得知該元素的位置、它與其他元素的距離,並且能輕鬆地做水平或垂直翻轉。
任何視覺化中最基本的元素就是單一點。在這個練習中,你將從零開始為平面上的一個點撰寫類別。
本練習屬於課程
Python 物件導向程式設計
練習說明
定義類別 Point,其具備:
- 兩個屬性
x與y—— 代表平面上該點的座標; - 一個建構子,接受兩個引數
x與y,用來初始化對應的屬性。這兩個引數的預設值應為0.0; - 方法
distance_to_origin(),它會回傳此點到原點的距離。公式為 $\sqrt{x^2 + y^2}$。 - 方法
reflect(),用於將此點相對於 x 軸或 y 軸做鏡射反射:- 接受一個引數
axis, - 若
axis="x",就把y(不是打錯字!)設為y的負值, - 若
axis="y",就把x設為x的負值, - 若
axis是其他值,則印出錯誤訊息。
- 接受一個引數
注意:你可以選擇使用 numpy 或 math 套件中的 sqrt() 函式,但不論選哪一個套件,在開始定義類別之前都要先匯入它!
要檢查你的程式是否正確,應該能夠順利執行以下程式碼且不出錯:
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
並得到以下輸出:
(-3.0,0.0)
5.0
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Write the class Point as outlined in the instructions