在 Python Lambda 中使用 Await
异步编程不是多线程或多进程。 相反,它是并发编程,我们可以运行一个可能长时间运行的任务,并允许我们的程序在该任务仍在运行时响应其他任务,而不是等待完成。
对于异步编程,HTTP 请求操作或用户选择可能会花费大量时间,因此,允许其他任务在这些操作仍在执行时运行是明智的。
在 Python 中,要实现异步编程,我们可以将 async/await
特性与函数一起使用,但我们使用 lambda 函数来实现。 本文将讨论在 Python lambda 函数中使用 await 的可能性。
Python Lamda 中没有async/await 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 函数传递异步函数将在同步函数中执行。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串