【发布时间】:2013-03-11 05:24:35
【问题描述】:
函数中究竟发生了什么:
lambda x: 10 if x == 6 else 1
我知道一些 lambda 函数的作用,但我不习惯看到它们这样写。我是任何形式的代码的菜鸟。
【问题讨论】:
函数中究竟发生了什么:
lambda x: 10 if x == 6 else 1
我知道一些 lambda 函数的作用,但我不习惯看到它们这样写。我是任何形式的代码的菜鸟。
【问题讨论】:
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 程序员的思维,了解其他更复杂的代码对象(例如类),这些对象可以在运行时轻松构建。
【讨论】:
由于 python 是一种具有功能特性的优秀语言,您可以使用 lambdas 对函数进行方便的操作。 你的例子相当于
if x == 6:
return 10
else:
return 1
lambda 函数在您需要将一个简单函数作为参数传递给代码中某处的另一个函数时很有用。
【讨论】: