从这个页面:http://www.brpreiss.com/books/opus7/html/page94.html
为什么要使用
fget=lambda self: self.getNumberOfColumns()
?我知道这是为了能够使用Matrix().numberOfColumns
(作为属性),但这里到底发生了什么?为什么我们不能使用
fget=self.getNumberOfColumns()
而不是使用lambda
函数?
我很难理解这一点。有人可以解释一下吗?
最佳答案
你不能执行 fget=self.getNumberOfColumns
因为 self
没有在类范围内声明。
但是,lambda
不是必需的;你可以把它写成
numberOfRows = property(fget=getNumberOfRows)
或者,甚至更好:
@property
def numberOfRows(self):
return self._numberOfRows
无需显式 getter、property
调用和赋值。
关于python - 为什么使用 lambda 函数将其设为属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457919/