Python - весьма функционально насыщенный язык. Он обладает множеством встроенных возможностей, которые облегчают написание читабельного и эффективного кода. В этой статье мы рассмотрим одну из таких них, называемую декораторами. Декораторы - это функции, которые используются для изменения поведения других функций. Это очень мощная конструкция, поскольку она позволяет изменить поведение функции без необходимости переписывать её. Другими словами, вы можете добавить дополнительный функционал в функцию, не изменяя ее. Например, если вы хотите логировать все вызовы функции, вы можете сделать это следующим образом: Здесь в строке 5 мы создаем декоратор. В строке 6 мы определяем функцию-обертку. В строке 9 мы возвращаем результат запуска оригинальной функции. В строке 10 мы возвращаем функцию-обертку. Это функция, которая будет использоваться для декорирования исходной функции. С технической точки зрения, декораторы оборачивают функцию. Так, функция, которая декорируется, называется обернутой