Используя модуль декоратора от Michele Simionato, я получаю странное поведение по отношению к kwargs. Вот пример, используя простой пример, который in the documentation:Модуль декоратора Python - kwargs
def _trace(f, *args, **kw):
kwstr = ', '.join('%r: %r' % (k, kw[k]) for k in sorted(kw))
print("calling %s with args %s, {%s}" % (f.__name__, args, kwstr))
return f(*args, **kw)
def trace(f):
return decorate(f, _trace)
@trace
def f(a, b, c=1, d=1):
return a + b + c + d
f(1,2,c=2,d=2)
печатает calling f with args (1, 2, 3, 4), {}
вместо calling f with args (1, 2), {'c': 2, 'd': 2}
ли хотел поведение? Почему так?
Или у меня что-то не так?
Обернутая функция отлично работает в любом случае, поэтому это не имеет значения. – kindall