首页 > 解决方案 > python多重赋值,可能有异常

问题描述

我正在使用 python 3.x 我有很多变量和很多函数。我必须将这些变量分配给函数的值,例如:

x1 = f1()
x2 = f2()
......

这些函数可能会抛出异常,在这种情况下我需要返回 None。我想写一个函数来完成这个任务。

assign(x1,f1).

任何想法如何实现它。

标签: pythonexception

解决方案


不,从函数内部分配给变量是不可能的,但是无论如何都不需要将分配封装到该函数中:

def safely_call(f, *args, **kwargs):
    try:
        return f(*args, **kwargs)
    except Exception:
        logging.exception('Call to %s (%s, %s) failed', f, args, kwargs)
        return None

x1 = safely_call(f1)
x2 = safely_call(f2)

推荐阅读