Python相当于Perl的习惯做这个或那个,通常被称为"或死"?

sor*_*rin 6 python perl boolean idioms short-circuiting

在Perl中,做一些事情很常见function() || alternative().如果第一个返回false,它将运行第二个.

如何在Python中轻松实现?

更新

示例(伪代码):

x = func() or raise exeption
x = func() or print(x)
func() or print something
Run Code Online (Sandbox Code Playgroud)

如果可能的解决方案应该与Python 2.5+一起使用

注意:有一个隐含的假设是你不能修改func()来引发异常,也不能编写包装器.

roc*_*ker 5

使用or:Python 对布尔表达式使用短路评估:

function() or alternative()
Run Code Online (Sandbox Code Playgroud)

如果functionreturs为True,则确定此表达式的最终值,并且 alternative根本不进行评估.


fre*_*ish 1

function() or alternative()
Run Code Online (Sandbox Code Playgroud)

其机制完全相同。