Декораторы позволяют добавить дополнительное поведение к функции, не изменяя её исходный код. Декоратор - это функция, которая принимает другую функцию в качестве входных данных и возвращает новую функцию. 🎯 Простой декоратор Сначала определите декоратор, затем примените его с помощью `@имя_декоратора` над функцией. Размещая @changecase непосредственно над определением функции, функция myfunction "декорируется" функцией changecase. 🔄 Множественные вызовы декоратора Декоратор можно вызывать несколько раз. Просто разместите декоратор над функцией, которую хотите декорировать. Пример
Использование декоратора @changecase на двух функциях: 📝 Аргументы в декорируемой функции Функции, требующие аргументы, также могут быть декорированы - просто убедитесь, что передаёте аргументы в функцию-обёртку: Пример
Декорирование функций с аргументами: 🌟 *args и **kwargs Иногда декоратор не контролирует аргументы, передаваемые из декорируемой функции. Чтобы решить эту проблему, добавьте (*args, **kwa