# Базовый синтаксис декоратора в python def my_decorator(func): def wrapper_func(): # Делаем что-то до вызова функции func() # Делаем что-то после вызова функции return wrapper_func ''' def decorator(func): def wrapper(): print('Start decorator') func() print('Finish decorator') return wrapper ''' def decorator(func): def inner(*args, **kwargs): print('Стартуем декоратор') func(*args, **kwargs) print('Заканчиваем декоратор') return inner def decorator_2(func): def inner(*args, **kwargs): print('Стартуем декоратор') func_res = func(*args, **kwargs) print(f'Функция func вернула значение "{func_res}"') print('Заканчиваем декоратор') return func_res.swapcase() return inner @decorator_2 def say_hello_to(name, surname): return f'Hello {name} {surname}' decorator def my_func(): print('This is my mega function!') def header_h1(func): def inner(*args, **kwargs): result = func(*args, **kwargs) return f'