Python: Passing the default values of function' arguments to *args or **kwargs
问题 Consider example: 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} ? How to pass all default values of the function foo to *args or **kwargs using only decorator (for functions) or metaclass (for class methods, e.g. __init__ )? 回答1: The wrapper is just a normal function. It does not have "access" to the internals of the wrapped function. You would