【发布时间】:2020-06-22 13:56:05
【问题描述】:
我有几个函数返回一个数字或None。我希望我的包装函数返回不是None 的第一个结果。除了以下还有其他方法吗?
def func1():
return None
def func2():
return 3
def func3():
return None
def wrapper():
result = func1()
if result is not None:
return result
result = func2()
if result is not None:
return result
result = func3()
if result is not None:
return result
我知道return func1() or alternative;它返回func1() 的结果,除非它是None,然后返回alternative。在最佳情况下,我会执行类似(伪代码)的操作:
return func1() or continue
return func2() or continue
return func3() or continue
【问题讨论】:
-
return func1() or func2() or func3()呢? -
嗯,我已经更喜欢那个了!如果有五十个函数呢?
-
@jorijnsmit:在这种情况下,您将有一个真正的循环遍历函数列表,只有一个中断。