python 2.7を使用して、私はTest
クラスを新しいスタイルのクラス構文で定義します。新しいスタイルのクラスと古いスタイルのクラスでsetterが異なる動作をする理由
class Test(object):
def __init__(self):
self._a = 5
@property
def a(self):
return self._a
@a.setter
def a(self, val):
self._a = val
t = Test()
print t.a
t.a = 4
print t.a
print t._a
上記のコードを実行すると、希望する動作である5,4,4
が印刷されます。 しかし、上記のコードの最初の行をclass Test:
に変更すると、結果は5,4,5
になります。
出力にこの違いが生じる原因を知っている人はいますか?