クラス変数の挙動がよく分かりません。
まず下のコードをシェル上で実行します。
python3
1class Fruit: 2 num = 0 3 def __init__(self,name): 4 self.name = name 5f1 = Fruit("Orange") 6f2 = Fruit("Apple")
次に
Fruit.num = 100
すると,
f1.num
100
f2.num
100
となりました。
ここまでは,理解できます。クラス変数はインスタンスオブジェクトで共有されると本に書いてありましたから。
次からが問題です。
f1.num=20
としても,
Fruit.num
100
f2.num
100
となって,共有されているはずなのに値が変わりません。
さらに,
Fruit.num=50と変更しても
f1.num
20
のままです。f2については
f2.num
50
と変わるのですが。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。