从Python文档中获取的示例。 Link
class Cell(object):
def getvalue(self, obj):
"Recalculate cell before returning value"
self.recalc()
return obj._value
value = property(getvalue)
但是当我做的时候
cell = Cell()
cell.value
引发异常
TypeError: getvalue() missing 1 required positional argument: 'obj'
问题: 如何使用示例代码?
答案 0 :(得分:2)
我认为您在文档中发现了一个错误。你不能传递(据我所知)getter-type属性的参数。我认为这个例子应该是:
class Cell(object):
def __init__(self, cell):
self.cell = cell
def recalc(self):
self._value = 100 # this wouldn't really return a static value
def getvalue(self):
"Recalculate cell before returning value"
self.recalc()
return self._value
value = property(getvalue)
>>> Cell('A1').value
100