Зміст курсу
Середній Рівень Python: Аргументи, Генератори та Декоратори
Середній Рівень Python: Аргументи, Генератори та Декоратори
Послідовність Декораторів
Застосування декількох декораторів у Python - це потужний інструмент, який дозволяє застосувати до однієї функції декілька декораторів. Кожен декоратор певним чином модифікує або покращує функцію, і вони застосовуються у певному порядку. Ось практичний приклад, який ілюструє використання декількох декораторів:
Два простих декоратори
Спочатку давайте визначимо два простих декоратори:
Послідовність декораторів
Тепер давайте застосуємо ці декоратори до однієї функції:
def decorator_one(func): def wrapper(): print('Decorator one start') func() print('Decorator one end') return wrapper def decorator_two(func): def wrapper(): print('Decorator two start') func() print('Decorator two end') return wrapper @decorator_one @decorator_two def greet(): print("Hello!") greet()
У кожному декораторі є код, який виконується перед переходом до наступного декоратора і після завершення цього декоратора. Це працює пошарово. Вони застосовуються в тому порядку, в якому вони перераховані, зверху вниз. Вихід верхнього декоратора стає входом для наступного. Таке нашарування може додати кілька функцій до початкової функції.
Порядок виконання
Коли викликається greet()
, порядок виконання буде таким:
- У
decorator_one
виконується перший print; - Всередині
decorator_one
, уdecorator_two
виконується перший print; - Нарешті, виконується оригінальна функція
greet
; - Потім повертаємось назад і завершуємо виконання
decorator_two
виведенням повідомлення; - Весь код завершується виконанням останнього print у
decorator_one
.
На виході буде:
Використання декількох - це потужний спосіб розширити поведінку функцій у модульний та читабельний спосіб.
Сподіваємось, наступна задача допоможе вам краще зрозуміти цю тему.
Дякуємо за ваш відгук!