来自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'
题:
示例代码应如何使用?
最佳答案
我认为您在文档中发现了一个错误。您不能(据我所知)将参数传递给getter类型的属性。我认为例子应该是:
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
关于python - Python文档中的描述符示例不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26520094/