1

从这个页面:http ://www.brpreiss.com/books/opus7/html/page94.html

在此处输入图像描述

  1. 为什么fget=lambda self: self.getNumberOfColumns()使用?我知道这是为了能够使用Matrix().numberOfColumns(作为属性),但是这里到底发生了什么?

  2. 为什么我们不能使用函数fget=self.getNumberOfColumns()来代替呢?lambda

我很难理解这一点。有人可以解释一下吗?

4

2 回答 2

4

你不能这样做fget=self.getNumberOfColumns,因为self没有在类范围内声明。

但是,这lambda不是必需的;你可以把它写成

numberOfRows = property(fget=getNumberOfRows)

或者,甚至更好:

@property
def numberOfRows(self):
    return self._numberOfRows

无需显式的 getter、property调用和赋值。

于 2013-08-27T05:55:19.593 回答
1

您可以像这样避免使用 lambda:

@property
def numberOfColumns(self):
    return self.getNumberOfColumns()
于 2013-08-27T06:02:58.707 回答