Декораторы в Python: как обернуть функцию в функциональность, не трогая её код
Вы написали полезную функцию. Всё работает. Но вдруг понадобилось замерять время её выполнения. Или логировать аргументы. Или проверять права доступа. Переписывать каждую функцию? Нет. В Python есть элегантный механизм — декораторы. Это функции, которые принимают другую функцию и возвращают её улучшенную версию. Представьте, что вы кладёте функцию в «обёртку», которая добавляет нужное поведение до или после вызова. Сегодня разберём: В Python функции — полноценные объекты. Их можно присваивать переменным, передавать в другие функции и возвращать из функций...