python lambda引发带有多个参数的变量未定义错误

Posted

技术标签:

【中文标题】python lambda引发带有多个参数的变量未定义错误【英文标题】:python lambda raises variable not defined error with multiple arguments 【发布时间】:2017-01-11 19:18:50 【问题描述】:

在尝试编写我理解的单行斐波那契数列时,fib = lambda a, b: b, a + b"'b' is not defined" 存在问题

但是,当我执行sum = a, b, c: a + b + c 时,我没有收到任何错误。 sum(1, 2, 3) 完美运行并返回 6

我研究了全局变量,发现如果我在开始之前将a和b设置为Null,它不会给我一个错误,但是有没有办法不这样做?

【问题讨论】:

【参考方案1】:

您需要在 lambda 主体周围加上括号:

fib = lambda a, b: (b, a + b)

否则 Python 认为是这样的:

fib = (lambda a, b: b), a + b

顺便说一句,如果您只是要将函数分配给一个名称,那么使用 lambda 并没有真正的目的。

【讨论】:

以上是关于python lambda引发带有多个参数的变量未定义错误的主要内容,如果未能解决你的问题,请参考以下文章

(Python) 未显示多个引发的 ValueErrors

带有 lambda 作为每个实例化的唯一默认参数的模板

Python 之 进阶学习

带有 .Net Core 的 AWS Secret Manager 引发套接字异常

Java 8:带有可变参数的 Lambda

理解 python 中的 lambda 并使用它来传递多个参数