Str*_*ray 3 python lambda python-3.x
当试图写一行斐波纳契数列,我明白了,我在遇到一个问题,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,它不会给我一个错误,但有没有办法不这样做?
Bre*_*arn 10
你需要在lambda体周围加上括号:
fib = lambda a, b: (b, a + b)
Run Code Online (Sandbox Code Playgroud)
否则Python认为是这样的:
fib = (lambda a, b: b), a + b
Run Code Online (Sandbox Code Playgroud)
顺便说一句,lambda如果您只是将函数分配给名称,那么使用它并没有真正的目的.
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |