Python:为什么lambda在内联中定义变量if?

时间:2013-08-20 22:01:13

标签: python lambda

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

x = lambda: 1 if x else 2

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

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

1 个答案:

答案 0 :(得分:5)

  

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

没有。作业x = [any expression]x定义为[any expression]。在这种情况下,表达式为lambda: 1 if x else 2,它将求值为不带参数的函数对象,而x保存的是{{1}}。