Послідовність Декораторів
Застосування декількох декораторів у Python - це потужний інструмент, який дозволяє застосувати до однієї функції декілька декораторів. Кожен декоратор певним чином модифікує або покращує функцію, і вони застосовуються у певному порядку. Ось практичний приклад, який ілюструє використання декількох декораторів:
Два простих декоратори
Спочатку давайте визначимо два простих декоратори:
Послідовність декораторів
Тепер давайте застосуємо ці декоратори до однієї функції:
У кожному декораторі є код, який виконується перед переходом до наступного декоратора і після завершення цього декоратора. Це працює пошарово. Вони застосовуються в тому порядку, в якому вони перераховані, зверху вниз. Вихід верхнього декоратора стає входом для наступного. Таке нашарування може додати кілька функцій до початкової функції.
Порядок виконання
Коли викликається greet()
, порядок виконання буде таким:
- У
decorator_one
виконується перший print; - Всередині
decorator_one
, уdecorator_two
виконується перший print; - Нарешті, виконується оригінальна функція
greet
; - Потім повертаємось назад і завершуємо виконання
decorator_two
виведенням повідомлення; - Весь код завершується виконанням останнього print у
decorator_one
.
На виході буде:
Використання декількох - це потужний спосіб розширити поведінку функцій у модульний та читабельний спосіб.
Сподіваємось, наступна задача допоможе вам краще зрозуміти цю тему.
Все було зрозуміло?
Зміст курсу
Середній Рівень Python: Аргументи, Генератори та Декоратори
2. Аргументи Функції
3. Функція як Аргумент
Середній Рівень Python: Аргументи, Генератори та Декоратори
Послідовність Декораторів
Застосування декількох декораторів у Python - це потужний інструмент, який дозволяє застосувати до однієї функції декілька декораторів. Кожен декоратор певним чином модифікує або покращує функцію, і вони застосовуються у певному порядку. Ось практичний приклад, який ілюструє використання декількох декораторів:
Два простих декоратори
Спочатку давайте визначимо два простих декоратори:
Послідовність декораторів
Тепер давайте застосуємо ці декоратори до однієї функції:
У кожному декораторі є код, який виконується перед переходом до наступного декоратора і після завершення цього декоратора. Це працює пошарово. Вони застосовуються в тому порядку, в якому вони перераховані, зверху вниз. Вихід верхнього декоратора стає входом для наступного. Таке нашарування може додати кілька функцій до початкової функції.
Порядок виконання
Коли викликається greet()
, порядок виконання буде таким:
- У
decorator_one
виконується перший print; - Всередині
decorator_one
, уdecorator_two
виконується перший print; - Нарешті, виконується оригінальна функція
greet
; - Потім повертаємось назад і завершуємо виконання
decorator_two
виведенням повідомлення; - Весь код завершується виконанням останнього print у
decorator_one
.
На виході буде:
Використання декількох - це потужний спосіб розширити поведінку функцій у модульний та читабельний спосіб.
Сподіваємось, наступна задача допоможе вам краще зрозуміти цю тему.
Все було зрозуміло?