考虑例子:
def decorator(func):
def wrapper(*args, **kwargs):
print(args, kwargs)
func(*args, **kwargs)
return wrapper
@decorator
def foo(x, y, z=0):
pass
foo(5, 5)
输出:
(5, 5) {}
为什么不(5, 5) {'z': 0}
?如何仅使用装饰器(用于函数)或元类(用于类方法,例如foo
)将函数*args
的所有默认值传递给**kwargs
或__init__
?
答案 0 :(得分:0)
包装器只是一个普通的功能。它没有“访问”包装函数的内部。
你必须使用内省来获得它们。查看相关问题: