АСИНХРОННЫЙ ДЕКОРАТОР В PYTHON

Асинхронный декоратор в Python позволяет создавать функции, использующие неблокирующие операции ввода-вывода и ожидание событий без простоя потока выполнения.

Декоратор @asyncio.coroutine, введенный в Python 3.4, можно использовать в ядре генератора, который может приостанавливать свою работу и возобновлять ее позже.

@asyncio.coroutine
def my_coroutine():
    yield from asyncio.sleep(1)
    print("This is an asynchronous coroutine")

В Python 3.5 введен синтаксис async def, который делает создание асинхронных функций более лаконичным и читаемым:

import asyncio
async def my_coroutine():
    await asyncio.sleep(1)
    print("This is an asynchronous coroutine")

Асинхронные декораторы могут быть использованы для добавления функциональности к асинхронным функциям:

import time
import asyncio
def timing_coroutine(func):
    async def wrapper(*args, **kwargs):
        start_time = time.time()
        result = await func(*args, **kwargs)
        end_time = time.time()
        print(f"{func.__name__} executed in {end_time - start_time} seconds")
    return wrapper
@timing_coroutine
async def my_coroutine():
    await asyncio.sleep(1)
    print("This is an asynchronous coroutine")

Декоратор @asyncio.coroutine используется в старой версии Python 3.4, а синтаксис async def используется в новой версии Python 3.5 и выше.

Как работает декоратор в python. Пошаговое объяснение того, как работает декоратор

Декораторы в Python

Декораторы Python - Разбираем Декораторы С Примерами Кода

#45. Введение в декораторы функций - Python для начинающих

ДЕКОРАТОРЫ С АРГУМЕНТАМИ В ПИТОНЕ

Декораторы Python на простых примерах

Декораторы в Python Часть 1. Decorator Python

Как устроены декораторы в python?

#9. Свойства property. Декоратор @property - Объектно-ориентированное программирование Python

BLGPG-A82574A08D08-24-09-20-01

Новые материалы: