属性に対するロジックの実装
これまでに作成した Player クラスは良いスタートでしたが、クラスレベル属性の大きな利点のひとつは、データの上限や下限を制限できることです。
この演習では、クラスレベルの MAX_POSITION を超えないように、position の値を制限するよう Player クラス定義を修正します。
この演習はコースの一部です
Pythonによるオブジェクト指向プログラミング入門
演習の手順
- 引数
selfとpositionを取るコンストラクタ__init__()を定義します。 - コンストラクタ内で、
positionがクラスレベルのMAX_POSITION以下かを確認し、以下ならself.positionにpositionを代入します。 - もし
positionがクラスレベルのMAX_POSITIONより大きい場合は、クラスの.MAX_POSITION属性を代入します。 - 位置が
6のPlayerオブジェクト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(____.____)