在Python2.6中,我想做的是:
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception这显然不是语法。可以在lambda中执行if吗?如果可以,如何执行?
发布于 2009-10-19 05:48:07
如果你真的想这样做,你可以很容易地在lambda中引发一个异常。
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主体中填充太多内容。
https://stackoverflow.com/questions/1585322
复制相似问题