考虑示例:
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)
Output:
(5, 5) {}
Why not (5, 5) {'z': 0}
?如何传递函数的所有默认值foo
to *args
or **kwargs
仅使用装饰器(对于函数)或元类(对于类方法,例如__init__
)?
包装器只是一个普通的函数。它无法“访问”包装函数的内部结构。
你必须通过内省来获得它们。看一个相关问题:
如何在Python中找到另一个函数中特定函数参数的默认值?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)