是否有内置的方法来模拟将值分配给参数? [重复]
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
内部,并且在其中可能有args
和kwargs
参数内部功能也是如此。因此,将包装器中的args
和kwargs
值与内部函数中的参数名进行匹配将非常有用。
我的问题是,是否有内置的方法来进行这种匹配?如果没有,那么实现它的一种优雅方法是什么?
我有一个装饰器,用于抑制和记录函数中的异常。代码是这样的:def log_exceptions(func):def wrapper(* args,** kwargs):try:...
答案
如果可以确定签名,则inspect.signature(func).bind(*args, **kwargs)
完成该工作。
以上是关于是否有内置的方法来模拟将值分配给参数? [重复]的主要内容,如果未能解决你的问题,请参考以下文章