是否有内置的方法来模拟将值分配给参数? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有内置的方法来模拟将值分配给参数? [重复]相关的知识,希望对你有一定的参考价值。

我有一个装饰器,用于抑制和记录函数中的异常。代码是这样的:

def log_exceptions(func):
    def wrapper(*args, **kwargs):
        try:
            ret = func(*args, **kwargs)
        except Exception as e:
            print(e)
            print(args, kwargs)  # also log what arguments caused the exception
        return ret
    return wrapper

这里的问题是,很难将打印的参数值与函数的参数名称进行手动匹配,因为位置参数也可能位于kwargs内部,并且在其中可能有argskwargs参数内部功能也是如此。因此,将包装器中的argskwargs值与内部函数中的参数名进行匹配将非常有用。

我的问题是,是否有内置的方法来进行这种匹配?如果没有,那么实现它的一种优雅方法是什么?

我有一个装饰器,用于抑制和记录函数中的异常。代码是这样的:def log_exceptions(func):def wrapper(* args,** kwargs):try:...

答案

如果可以确定签名,则inspect.signature(func).bind(*args, **kwargs)完成该工作。

以上是关于是否有内置的方法来模拟将值分配给参数? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将值分配给数字因子水平[重复]

逐行读取文件,将值分配给变量[重复]

使用列表理解将值分配给字典键[重复]

C - 将值分配给结构数组的分段错误

增强的 for 循环不适用于将值分配给数组(Java)[重复]

将类变量作为默认值分配给类方法参数