まず曖昧なところが、複数あるのですが、
- クラス変数はインスタンス(オブジェクト)ごとに値がリセットされないと書いてあったのですが、この場合リセットされています。どういうことですか?
python
1class SampleClass(object): 2 b = 1 3 b += 3 4 5i = SampleClass() 6o = SampleClass() 7print(o.b) 8
1-2. ただ、このように初期化メソッドの中でクラス変数を変更した場合は、保持され続けます。なぜなのかわからないです。そしてSampleClass.bとただのbは何が違うのでしょう。SampleClass.bはクラス変数だとわかりますが、ただのbもクラス変数なのではないでしょうか?
python
1class SampleClass(object): 2 b = 0 3 def __init__(self): 4 SampleClass.b += 3 5 6i = SampleClass() 7o = SampleClass() 8 9print(o.b) 10
- クラス変数とインスタンス変数の違い。
まず調べたのですが、
「クラス定義内で定義された変数はクラス変数です。 クラス変数は全てのインスタンス間で共有される」
とのことだったのですが、これは、初期化メソッドの中で、```python
class SampleClass(object):
def init(self, name):
self.name = name
このようにインスタンス変数を定義してもクラス変数ということですか?インスタンス変数とクラス変数が同名だったらインスタンス変数のほうが優先されるのでしょうか。 これらの理由を教えていただきたいです。

回答1件
あなたの回答
tips
プレビュー