파이썬 2.7을 사용하여 아래 정의 된 새로운 스타일 클래스 구문을 사용하는 클래스가 있다고 가정합니다.새 스타일 클래스와 이전 스타일 클래스에서 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
이됩니다.
출력에이 차이가 나는 원인을 알고있는 사람이 있습니까?