如何迭代函数列表

Posted

技术标签:

【中文标题】如何迭代函数列表【英文标题】:how to iterate a list of functions 【发布时间】:2021-10-28 11:19:46 【问题描述】:

我有 5 个用户定义函数 f1f2f3f4f5。现在我将其用作:

try:
    f1()
except:
    pass
try:
    f2()
except:
    pass
try:
    f3()
except:
    pass
try:
    f4()
except:
    pass
try:
    f5()
except:
    pass

我想知道一个更简单的方法来迭代这个函数列表,同时在每个函数调用上使用 try 和 except。

【问题讨论】:

【参考方案1】:

使用 python 装饰器

def add_try_func(func):
    def _try(*args, **kwargs):
        try:
            res = func(*args, **kwargs)
            print('add try func')
            ## return res
        except:
            pass

    return _try

@add_try_func
fun1()


@add_try_func
fun2()


@add_try_func
fun3()


【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。【参考方案2】:

函数是和其他任何变量一样的变量,您可以遍历它们的列表。

for func in [f1, f2, f3, f4, f5]:
    try:
        func()
    except:
        pass

【讨论】:

以上是关于如何迭代函数列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在定义自己的函数时迭代列表中的条目

内置函数 iter() 如何将 Python 列表转换为迭代器?

如何迭代地将 2 个列表中的元素应用到新函数中? [复制]

如何使 jQuery 函数迭代从同一类中的 2 个列表中获取的单独数组?

Django 模板迭代和渲染函数返回的列表中的项目

day5--装饰器函数的信息打印,迭代器,生成器,列表推导式,内置函数