TG Telegram Group & Channel
Библиотека Python разработчика | Книги по питону | United States America (US)
Create: Update:

Лямбды в Python не могут делать многое из того, что умеют обычные функции. В теле лямбда-выражения можно использовать только одно выражение, нельзя писать операторы (такие как a = b, yield, await и т.д.), также нельзя добавлять аннотации типов или объявлять лямбду как async.

Тем не менее, если очень нужно превратить лямбду в асинхронную функцию, можно использовать декоратор asyncio.coroutine. Это было полезно до появления ключевого слова async в Python 3.4, но в современном Python почти не применяется.


>>> f = asyncio.coroutine(lambda x: x ** 2)
>>> asyncio.get_event_loop().run_until_complete(f(12))
144


Разумеется, это всё равно не позволяет использовать await внутри лямбды.

👉@BookPython

Лямбды в Python не могут делать многое из того, что умеют обычные функции. В теле лямбда-выражения можно использовать только одно выражение, нельзя писать операторы (такие как a = b, yield, await и т.д.), также нельзя добавлять аннотации типов или объявлять лямбду как async.

Тем не менее, если очень нужно превратить лямбду в асинхронную функцию, можно использовать декоратор asyncio.coroutine. Это было полезно до появления ключевого слова async в Python 3.4, но в современном Python почти не применяется.


>>> f = asyncio.coroutine(lambda x: x ** 2)
>>> asyncio.get_event_loop().run_until_complete(f(12))
144


Разумеется, это всё равно не позволяет использовать await внутри лямбды.

👉@BookPython


>>Click here to continue<<

Библиотека Python разработчика | Книги по питону




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)