在python 2.6中,我想这样做:
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
这显然不是语法。是否可以执行if
in lambda
,如果可以,该怎么做?
谢谢
2
您不能打印或抬高lambda。Lambda只是函数,您可以始终使用函数代替。
—
Lennart Regebro 09年
恕我不能赞同。我需要4个不同的,非常短的函数(例如上面的一个),需要将它们放在列表/字典中,以便我可以对其进行迭代并选择在每次迭代中使用的函数。在迭代之前,我可以将其简化为仅4行init代码,而不是只是init的多行代码。越少越快乐..
—
Guy
当其他人必须阅读,解释,理解和维护代码时,4行代码不是一个值得称赞的解决方案。此外,示例中的“打印/凸起”问题表明了这一点,该问题不能而且不应该在lambda中完成。
—
S.Lott
@LennartRegebro lambdas不是python中的函数,它们只是表达式,这就是为什么您不能使用它们做很多事情的原因。
—
亚伦·麦克米林
@AaronMcMillin Lambdas是函数。由于语法原因,它们仅限于表达式,但它们是函数。
—
Lennart Regebro '16