from functools import wraps ''' Такой декоратор работать не будет ''' def html_tag(func, name_tag='h1'): def inner(*args, **kwargs): result = func(*args, **kwargs) return f'<{name_tag}>{result}' return inner def decorator_factory(a, b): print('Запуск функции создания декоратора') def decorator(fn): print('Запуск декоратора') def wrapper(*args, **kwargs): print('Запуск функции wrapper') print('Переданные аргументы: ', a, b) return fn(*args, **kwargs) return wrapper return decorator ''' Можно раскрыть следующей записью decorator = decorator_factory() # получаем декоратор из decorator_factory original_func = decorator(original_func) # декорируем Или есть еще вариант original_func = decorator_facotry()(original_func) ''' @decorator_factory(10, 20) # Обратите внимание на оператор вызова def original_func(): print('Запуск оригинальной функции') def main(): original_func() if __name__ == '__main__': main()