クラスを一から書く
あなたは可視化パッケージを作成する Python 開発者です。可視化内のどの要素についても、その位置、ほかの要素からの距離、そして水平方向・垂直方向の反転を簡単に実装できるようにしたいと考えています。
どんな可視化でも、最も基本的な要素は単一点です。この演習では、平面上の点を表すクラスを一から作成します。
この演習はコースの一部です
Python によるオブジェクト指向プログラミング
演習の手順
Point クラスを次の要件で定義してください:
- 2 つの属性
xとy— 平面上の点の座標。 - コンストラクタ —
xとyの 2 つの引数を受け取り、対応する属性を初期化します。これらの引数のデフォルト値は0.0とします。 distance_to_origin()メソッド — 原点からの距離を返します。その式は \(\sqrt{x^2 + y^2}\) です。reflect()メソッド — 点を x 軸または y 軸について反転します。- 引数として
axisを 1 つ受け取り、 axis="x"の場合、y属性(誤字ではありません!)をyの負の値に設定します。axis="y"の場合、x属性をxの負の値に設定します。- 上記以外の
axisの値に対しては、エラーメッセージを出力します。
- 引数として
注意: sqrt() 関数は numpy でも math でもどちらのパッケージから使ってもかまいませんが、どちらを選ぶ場合でも、クラス定義を始める前に必ずインポートしてください。
動作確認のため、次のコードがエラーなく実行できるはずです:
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