7

函数中到底发生了什么:

lambda x: 10 if x == 6 else 1 

我知道一些 lambda 函数的作用,但我不习惯看到它们这样写。我是任何形式的代码的菜鸟。

4

2 回答 2

14
some_function = lambda x: 10 if x == 6 else 1

是语法糖:

def some_function(x):
    return 10 if x == 6 else 1

x == 6这意味着如果计算结果为 True,它将返回 10,否则返回 1。

就个人而言,def除了最简单的情况外,我更喜欢这种形式,因为它允许多行函数,更清楚调用可调用对象所涉及的开销类型,更简单地分析函数的闭包,并打开思路新的 Python 程序员可以轻松地在运行时构建其他更复杂的代码对象(例如类)。

于 2013-03-21T15:43:24.060 回答
2

由于 python 是一种具有功能特性的优秀语言,因此您可以使用 lambdas 使用函数做一些方便的事情。你的例子相当于

if x == 6:
    return 10
else:
    return 1

lambda如果您需要将一个简单的函数作为参数传递给代码中某处的另一个函数,则函数很有用。

于 2013-03-21T15:43:19.287 回答