python - 为什么使用 lambda 函数将其设为属性?

标签 python python-2.7 data-structures lambda getter

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

enter image description here

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

  2. 为什么我们不能使用 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/

相关文章:

java - 有没有类似于队列的数据结构,可以对不同的线程进行多播?

python - 删除 Pandas 中与您的标题匹配的行

python - 如何避免忙于等待没有阻塞调用的代码?

python - 获取给定值对应的 "zero value"

algorithm - 加权无环图代码

Java - 带有决策的链表

python - setuptools,提前知道 native 库的轮文件名

python - 如何从 Python 中的另一个项目导入模块?

python - 检查列表中的单词并删除 pandas dataframe 列中的那些单词

python - 在 python 中使用 selenium webdriver 查找具有显式等待的元素