在 Python Lambda 中使用 Await

异步编程不是多线程或多进程。 相反,它是并发编程,我们可以运行一个可能长时间运行的任务,并允许我们的程序在该任务仍在运行时响应其他任务,而不是等待完成。

对于异步编程,HTTP 请求操作或用户选择可能会花费大量时间,因此,允许其他任务在这些操作仍在执行时运行是明智的。

在 Python 中,要实现异步编程,我们可以将 async/await 特性与函数一起使用,但我们使用 lambda 函数来实现。 本文将讨论在 Python lambda 函数中使用 await 的可能性。


Python Lamda 中没有异步/等待 lambda

要在 Python 中进行异步编程,我们需要一个名为 asyncio 的内置高级包,它使用 async/await 语法来允许并发编程。

要创建异步操作,您可以使用 async 和 await 关键字。

import asyncio

async def main():
    print("Action One")
    await asyncio.sleep(1)
    print("Action Two")

asyncio.run(main())

输出:

Action One
Action Two

我们将 async 关键字应用于 main() 函数,并将 await 关键字应用于 asyncio.sleep() 语句; 但是,我们如何通过 lambda 将其应用于匿名函数? 匿名函数或 lambda 函数是在没有名称的情况下定义的,并使用 lambda 关键字来实现。

假设您想从列表中删除不能被 3 整除的数字。我们可以使用采用另一个函数的 filter() 方法(高阶函数)。

因此,您可以使用 lambda 关键字来使用匿名函数,而不是定义您可能不会再次使用的函数绑定。

myNums = [1, 2, 3, 4, 5, 6, 7]

myNums = list(filter(lambda x: x%3 == 0, myNums))

print(myNums)

输出:

[3, 6]

但是,有没有办法将异步功能添加到 lambda 函数中? 简单回答是不。

Python 的开发人员表示,没有重要的用例可以证明为 lambda 添加异步语法是合理的。

此外,lambda 的命名并不是 lambda 函数的正确用法; 因此,很难将它与 lambda 函数一起使用。 此外,通过 lambda 函数传递异步函数将在同步函数中执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迹忆客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值