始める無料で始める

属性に対するロジックの実装

これまでに作成した Player クラスは良いスタートでしたが、クラスレベル属性の大きな利点のひとつは、データの上限や下限を制限できることです。

この演習では、クラスレベルの MAX_POSITION を超えないように、position の値を制限するよう Player クラス定義を修正します。

この演習はコースの一部です

Pythonによるオブジェクト指向プログラミング入門

コースを見る

演習の手順

  • 引数 selfposition を取るコンストラクタ __init__() を定義します。
  • コンストラクタ内で、position がクラスレベルの MAX_POSITION 以下かを確認し、以下なら self.positionposition を代入します。
  • もし position がクラスレベルの MAX_POSITION より大きい場合は、クラスの .MAX_POSITION 属性を代入します。
  • 位置が 6Player オブジェクト p を作成し、その MAX_POSITION を出力してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

class Player:
  MAX_POSITION = 10
  
  # Define a constructor
  ____ ____(____, ____):
    
    # Check if position is less than the class-level attribute value
    if ____ <= ____.____:
      ____.____ = ____
    
    # If not, set equal to the class-level attribute
    else:
      ____.____ = ____.____

# Create a Player object, p, and print its MAX_POSITITON
p = ____(____)
print(____.____)
コードを編集して実行