Python中相当于Perl的"do this or that, or die"的用法是什么?
在Perl中,常常会写类似于function() || alternative()
这样的代码。如果第一个函数返回的是假值(也就是失败),那么就会执行第二个函数。
那么在Python中,怎么简单地实现这个功能呢?
更新
下面是一些示例(伪代码):
x = func() or raise exeption
x = func() or print(x)
func() or print something
如果可能的话,这些解决方案应该适用于Python 2.5及以上版本。
注意:这里有一个隐含的假设,就是你不能修改func()函数让它抛出异常,也不能写包装函数。
4 个回答
1
function() or alternative()
这个机制是完全一样的。
2
你可以使用 or
:
function() or alternative()
另外,还有一种条件表达式,它在 PEP 308 中有定义:
x = 5 if condition() else 0
这种写法在某些情况下很有用,而且读起来更容易理解。
5
使用 or
:在Python中,对于布尔表达式,它会使用一种叫做短路求值的方式。
function() or alternative()
如果 function
返回的是 True,那么这个表达式的最终结果就已经确定了,alternative
就根本不会被计算。