在JavaScript中我们可以使用promise.all()并行运行函数,但是在Python中不存在,我如何在Python中并行运行两个函数?
import discord
import asyncio
from discord.ext import tasks, commands
client = discord.Client()
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print("Monitor Ativo!")
promise.start()
async def bar():
print("sjj")
async def ba():
print("dhhdh")
@tasks.loop(seconds=5)
async def promise():
await asyncio.wait([bar(), ba()])
但是我注意到当我运行函数的时候,它总是先运行最后一个函数,所以它不可能并行运行,对吗?
因为它总是在第一个函数之前运行最后一个函数,所以它有一个模式,所以它不能并行运行,我怎么能在python中并行运行两个函数呢,相当于javascript中的promise.all。
2条答案
按热度按时间tgabmvqs1#
The answer by @KetZoomer运行良好,但下面介绍如何使用更接近您所需的语法更容易地进行伸缩,并正确地返回返回值:
如果运行此脚本,您将看到输出为(特定小数可能会更改,
bar
与b
可能会更改):注意:从最后一个函数(
b
函数)可以看出,如果你想传入一个变量,就使用lambda。0x6upsns2#
您可以使用
asyncio.create_task
。代码: