在python中,我想创建日志功能,例如返回函数的名称,参数和函数的值。我希望与sys.stderr一样的输出
"test: f(arg='1', arg2='a')\ntest: f -> '1a'"
代码如下 ```
def log(prefix):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kws):
code *here
return wrapper
return decorator
@log
function(arg="1", arg2="a")
return arg + arg2
```
我想到了一些像下面这样的代码,但它不会特别在arg =" 1" ARG2 ="&#34 ;.我不知道如何在一次解包kws参数(这里是dict)。
1
print("{}: {}({})\n{}: {} -> {}".format(prefix, func.__name__, kws, prefix, func.__name__, func(**kws)), file=sys.stderr)
2
print("{}: {}({})\n{}: {} -> {}".format(prefix, func.__name__, **kws, prefix, func.__name__, func(**kws)), file=sys.stderr)
如果你熟悉这个,你能给我一些解决方案或提示吗?