在尝试编写我理解的一行斐波那契数列时,我遇到了 fib = lambda a, b: b, a + b
as "'b'未定义”
但是,当我执行 sum = a, b, c: a + b + c
时,我没有收到任何错误。 sum(1, 2, 3)
完美运行并返回 6
。
我研究了全局变量,发现如果我在开始前将 a 和 b 设置为 Null,它不会给我报错,但有没有办法不这样做?
最佳答案
你需要在 lambda 主体周围加上括号:
fib = lambda a, b: (b, a + b)
否则Python认为是这样的:
fib = (lambda a, b: b), a + b
顺便说一下,如果您只是要将函数分配给一个名称,那么使用 lambda
没有任何实际意义。
关于python lambda 使用多个参数引发变量未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313318/