在阅读了关于lambda的所有资料后,我仍然不明白如何让它做我想做的事情.

每个人都用这个例子:

lambda x, y : x + y

为什么你需要在:之前说明xy?还有,如何让它返回多个参数?

例如:

self.buttonAdd_1 = Button(self, text='+', command=lambda : self.calculate(self.buttonOut_1.grid_info(), 1))

这个很好用.但以下代码没有:

self.entry_1.bind("<Return>", lambda : self.calculate(self.buttonOut_1.grid_info(), 1))

它会产生错误:

TypeError:()不接受任何参数(给定1个)

推荐答案

为什么需要在":"之前同时声明"x"和"y"?

因为lambda(概念上)与函数相同,只是内联编写的.你的例子相当于

def f(x, y) : return x + y

只是没有把它绑定到像f这样的名字上.

还有,如何让它返回多个参数?

和函数一样.最好返回一个元组:

lambda x, y: (x+y, x-y)

或者一张 list ,或者一门课,或者别的什么.

self.entry_1.bind的问题应该由Demosthenex来回答.

Python-3.x相关问答推荐

模型中的__str__方法在Django管理面板中生成大量重复查询

Pandas :从元组字典创建数据帧

数组列的极点成对求和

如何使用Python将嵌套的XML转换为CSV

无法导入名称';核心';来自部分初始化的模块';tensorflow_datasets';(很可能是由于循环导入)

估计列表中连续对的数量

如何强调您正在寻求以 pandas 数据帧的另一列为条件的差异?

可以在 Python 的上下文管理器中调用 sys.exit() 吗?

tkinter treeview 如何在获取所选项目时将设置的对象作为对象返回

如何获取实例化 `types.GenericAlias` 的下标类?

attrs 将 list[str] 转换为 list[float]

Python:如何在三个列表中找到共同值

如何在 Python 中计算 cohen 的 d?

if 语句中冒号的语法错误

在计算之前删除包含某些值的组合

使用 Python3 与 HDFS 交互的最佳模块是什么?

是否在未完成初始化的对象上调用了 del?

Python 3中星型导入的函数形式是什么

在 Ipython 中使用 Pylint (Jupyter-Notebook)

将 Python SIGINT 重置为默认信号处理程序