# Базовый синтаксис декоратора в 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 repeater(func): def wrapper(*args, **kwargs): func(*args, **kwargs) func(*args, **kwargs) func(*args, **kwargs) return wrapper def text_decor(func): def inner(*args, **kwargs): print('Hello') return func(*args, **kwargs) print('Goodbye!') return inner @text_decor def multiply(num1, num2): print(num1 * num2) def main(): # res = say_hello_to('Vasya', 'Ivanov') # print(f'{res=}') # res = one_more_func("gennadi", "LOSKOV") # print(f'{res=}') print(multiply(3, 5)) if __name__ == '__main__': main()