私はPythonの静的変数について学んでいます。 this答えによると、コードのこの作品は、クラスのすべてのオブジェクトのためのi
を一意にする必要がありますTest
Pythonの静的インスタンス変数
コード:
>>> class Test(object):
... _i = 3
... @property
... def i(self):
... return self._i
... @i.setter
... def i(self,val):
... self._i = val
...
>>>
>>> x1 = Test()
>>> x1.i
3
>>> x2 = Test()
>>> x2.i
3
>>> x1.i = 10
>>> x1.i
10
>>> x2.i
3
しかし、あなたは、オブジェクトx1.iを見ることができるようにすることはx2.i.と等しくありません
私はこれをPython 2.7と3.4の両方で実行しようとしましたが、結果は同じです。 このコンセプトに関する私の理解は間違っていると思います。
誰かがこれを私に説明したり、私をリソースに導いてくれますか?
オブジェクトを作成します。あなたの質問は何ですか? – Selcuk
そのリンクされた答えは間違っています。 'self._i = val'はクラス属性ではなく、そのインスタンス属性* _i *(これはクラスattrをシャドウします)にローカルに割り当てます。 –
あなたは[this](http://stackoverflow.com/a/69067/4642859) – 3kt