首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在python的lambda中执行"if“?

有没有办法在python的lambda中执行"if“?
EN

Stack Overflow用户
提问于 2009-10-19 00:28:04
回答 15查看 670.5K关注 0票数 441

Python2.6中,我想做的是:

代码语言:javascript
复制
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception

这显然不是语法。可以在lambda中执行if吗?如果可以,如何执行?

EN

Stack Overflow用户

发布于 2009-10-19 05:48:07

如果你真的想这样做,你可以很容易地在lambda中引发一个异常。

代码语言:javascript
复制
def Raise(exception):
    raise exception
x = lambda y: 1 if y < 2 else Raise(ValueError("invalid value"))

这是个好主意吗?一般来说,我的直觉是将错误报告保留在lambdas之外;让它的值为None,并在调用者中引发错误。我不认为这本质上是邪恶的--我认为"y if x else z“语法本身更糟糕--只是要确保您没有试图在lambda主体中填充太多内容。

票数 25
EN
查看全部 15 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1585322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档