如何尝试不同的函数,并返回在python中成功的第一个输出?

2024-09-28 16:57:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的函数,如果成功,每个函数都输出一个json字符串。我不能事先知道他们是否会失败,所以我想尝试他们都在下面指定的顺序。我该怎么做

我试过这样的方法:

import func1
import func2
import func3

def compi(url):
    try:
        return func1(url)
    except:
        return func2(url)
    else:
        return func3(url)

我确信func3不会失败


Tags: 方法函数字符串importjsonurlreturn顺序
2条回答
def compi(url):
    functions = [func1, func2, func3]
    for func in functions:
        try:
            return func(url)
        except:
            pass
    #oops, none of them succeeded.
    raise Exception("All functions failed to return a value.")

Python函数是一流的对象,因此不必手动遍历它们,只需列出它们并循环遍历即可,如下所示:

tested_funcs = [f1, f2, f3]
for f in tested_funcs:
    result = f(someinput)
    if result: break
return result

如果内部块失败时抛出错误,则将其包装为try/catch

相关问题 更多 >