Python: передача значений по умолчанию аргументов функции в * args или ** kwargs
Рассмотрим пример:
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__
)?