Pra*_*een 1 python lambda if-statement
请帮助我理解这是如何工作的。输出为4
a=4
b=7
x=lambda: a if 1 else b
lambda x: 'big' if x > 100 else 'small'
print(x())
Run Code Online (Sandbox Code Playgroud)
首先,让我们删除这一行,因为它不执行任何操作:
lambda x: 'big' if x > 100 else 'small'
Run Code Online (Sandbox Code Playgroud)
该lambda表达式已定义但从未被调用。它的参数也被调用这一事实x与代码的其余部分无关。
让我们看看还剩下什么:
a = 4
b = 7
x = lambda: a if 1 else b
print(x())
Run Code Online (Sandbox Code Playgroud)
这里x成为一个函数,因为它包含代码。该lambda形式只能包含表达式,不能包含语句,因此必须使用if向后查找的表达式形式:
如果条件为真,则结果为假,否则结果为假
在本例中,条件为1,它始终为真,因此函数的结果x()始终是 的值a,在代码的前面分配给 4。实际上,x()其行为如下:
def x():
return a
Run Code Online (Sandbox Code Playgroud)
理解表达式和语句之间的差异是理解此类代码的关键。