在Python中使用lambdas玩弄我发现以下代码在Python 2.7.3中是合法的并返回lambda:
x = lambda: 1 if x else 2
为什么lambda在以这种方式使用时会定义x?
编辑:对我来说,Python语法显然太难了,请参阅接受的答案......
答案 0 :(得分:5)
为什么lambda在以这种方式使用时会定义x?
没有。作业x = [any expression]
将x
定义为[any expression]
。在这种情况下,表达式为lambda: 1 if x else 2
,它将求值为不带参数的函数对象,而x
保存的是{{1}}。