Я интуитивно думал, что мы в декоратор отправляем функцию с переменными внутри, а ссылаясь на
wrapper, мы его просто запускаем. Почему же он занимает аргументы у
func1, если они как бы "чужие" и всё ещё являются частью вызова
func1? Как правильно уложить работу
обёртки в голове?
def dec(func1):
def wrapper(*arg):
func1(*arg)
return wrapper
@dec
def func1(a,b,c):
pass