在Python中使用lambdas玩弄我发现以下代码在Python 2.7.3中是合法的并返回lambda:
x = lambda: 1 if x else 2
Run Code Online (Sandbox Code Playgroud)
为什么lambda在以这种方式使用时会定义x?
编辑:Python语法显然对我来说太难了,看到接受的答案......
为什么lambda在以这种方式使用时会定义x?
它没有.赋值x = [any expression]定义x为[any expression].在这种情况下,表达式是lambda: 1 if x else 2,它在没有参数的情况下求值为一个函数对象,并且它是x持有的.