8
다음 코드를 사용하면 출력이 약간 어색해 보입니다. 왜 "기지에 도착"은 한 번만 인쇄됩니까? 그리고 왜 "베이스에 설치"가 전혀 인쇄되지 않았습니까? 실제 점점/설정 잘 작동하는 것 같다. 내가 뭘 놓치고 있니?파이썬 속성
class Base:
def __init__(self):
self.s = "BaseStr"
def getstr(self):
print "get in Base"
return self.s
def setstr(self, s):
print "set in Base"
self.s = s
str = property(getstr, setstr)
b = Base()
print b.str
b.str = "Foo"
print b.str
출력 :
특성이 제대로 작동하려면 당신은 new-style classes를 사용할 필요가get in Base
BaseStr
Foo
Spot on, 감사합니다. :) – Mizipzor
그리고 파이썬 3.x에서는 이것을 할 필요가 없습니다. Python3의 모든 클래스는 새로운 스타일입니다. – treecoder
그러나'object'를 하위 클래스로 만들지 않으면 고전 클래스에서 여전히'property'를 만들 수 있습니다. 그 이유는 무엇입니까? – Alcott