Python 属性
根据以下代码,输出结果看起来有点奇怪。为什么“get in Base”只打印了一次?而“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
2 个回答
0
每当你创建一个新的类时,记得要让它继承自object
类型。
18
要让属性正常工作,你需要使用新式类。这意味着你需要让你的类从object
这个基础类继承:
class Base(object):
...