Всех приветствую! Сегодня обсудим: 1 - Определние Декоратор - обертка позволяющия изменять поведения функции не изменяя ее код 2 - Применение Рассмотрим простой пример Функция "fetch_name" принимает аргумент "name" затем возвращает его , в нашем примере она возвращает имя "Кирилл". Теперь мы снова определяем эту же функцию и добавляем к ней декоратор 'add_greeting', как видите код функции совсем не изменился, но вывод функции стал другим, теперь она берет имя и добавляет к нему приветсвие. 💡 После аргумента name стоит ":" и тип данных "str", а после функции "->" и также тип данных "str". ЧТО ЭТО ? "name: str" - указывает, что аргумент "name" является строкой, то есть тип данных str. "-> str " - указывает на тип возвращаемых функцией данных. Как известно python язык с динамической типизацией, но возможность расставлять подсказки существует, это считается хорошей практикой на реальных проектах. Такой код лучшее читается и понимается другим разработчиком, следовательно его проще