クラス属性を変更する
クラス属性の定義方法と、インスタンスからのアクセス方法を学びました。では、インスタンス経由でクラス属性に別の値を代入しようとすると、どうなるでしょうか?
前の演習で使った Player クラスは、次のようにあらかじめ定義されています。
class Player:
MAX_POSITION = 10
def __init__(self, position):
if position <= Player.MAX_POSITION:
self.position = position
else:
self.position = Player.MAX_POSITION
この演習はコースの一部です
Pythonによるオブジェクト指向プログラミング入門
演習の手順
- 位置がそれぞれ
9と5のPlayerオブジェクトp1とp2を作成します。 p1.MAX_POSITIONとp2.MAX_POSITIONを表示します。p1.MAX_POSITIONに7を代入します。- もう一度、
p1.MAX_POSITIONとp2.MAX_POSITIONを表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create Players p1 and p2
p1 = ____
p2 = ____
print("MAX_POSITION of p1 and p2 before assignment:")
# Print p1.MAX_POSITION and p2.MAX_POSITION
____
____
# Assign 7 to p1.MAX_POSITION
____
print("MAX_POSITION of p1 and p2 after assignment:")
# Print p1.MAX_POSITION and p2.MAX_POSITION
____
____