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引发带有多个参数的变量未定义错误的主要内容,如果未能解决你的问题,请参考以下文章