给定以下代码,输出似乎有点可疑。为什么“进入基地”只打印一次?为什么根本不打印“set in Base”?实际的获取/设置似乎工作正常。我错过了什么?
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
输出:
get in Base
BaseStr
Foo
最佳答案
您需要使用 new-style classes使属性正常工作。为此,从 object
派生您的类:
class Base(object):
...
关于Python属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125166/