1

在 Python 中玩弄 lambda,我发现以下代码在 Python 2.7.3 中是合法的并返回 lambda:

x = lambda: 1 if x else 2

为什么 lambda 在以这种方式使用时会定义 x?

编辑:Python 语法对我来说显然太难了,请参阅接受的答案……</p>

4

1 回答 1

5

为什么 lambda 在以这种方式使用时会定义 x?

它没有。赋值x = [any expression]定义x[any expression]。在这种情况下,表达式是lambda: 1 if x else 2,它的计算结果是一个没有参数的函数对象,它是x成立的。

于 2013-08-20T22:03:30.673 回答