难以理解lambda函数
这个函数到底在做什么:
lambda x: 10 if x == 6 else 1
我知道一些lambda函数的作用,但我不习惯看到它们这样写。我对任何形式的代码都很陌生。
2 个回答
2
Python是一种很棒的编程语言,它有很多实用的功能,特别是可以用来处理函数的特性。你提到的例子其实可以用下面的方式来表示:
if x == 6:
return 10
else:
return 1
lambda
函数特别有用,当你需要把一个简单的函数作为参数传递给代码中的另一个函数时,就可以用到它。
14
some_function = lambda x: 10 if x == 6 else 1
这是一个简单的写法,实际上等于:
def some_function(x):
return 10 if x == 6 else 1
这意味着如果 x == 6
这个条件成立,就会返回10;如果不成立,就返回1。
我个人觉得在除了最简单的情况外,使用 def
这种写法更好,因为它可以写多行的函数,能更清楚地看到调用这个函数时需要的开销,也让分析函数的闭包变得简单。此外,这样也能让新手程序员接触到其他更复杂的代码对象(比如类),这些在运行时也可以很容易地构建出来。