このクラスがある場合、変数「値」はクラス変数です。
class Hello:
value = 10
def __init__(self):
print 'init'
オブジェクト 'h' があり、Hello.value と h.value の両方で同じ値 '10' を取得できました。
h = Hello()
print Hello.value
print h.value
このコマンドを実行すると、
h.value = 20
それらを実行すると、値「10」と「20」が得られます。
print Hello.value
print h.value
どうしてこれなの?
- Q1 : なぜ 'print h.value' は Hello.value の値を出力し、エラーを発生させないのですか?
- Q2 : h.value = 20 は、「self.value = 20」と同様の新しい変数を導入しますか?
- Q3 : インスタンス変数の作成を防止する (またはコード 'h.value = 20' の実行を防止する) 方法はありますか?