# Базовый синтаксис декоратора в 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'

{result}

' return inner @header_h1 def one_more_func(name, surname): return f'Hello {name} {surname}' def main(): # res = say_hello_to('Vasya', 'Ivanov') # print(f'{res=}') res = one_more_func("gennadi", "LOSKOV") print(f'{res=}') if __name__ == '__main__': main()