discord.py如何一行代码实现给消息添加多个表情反应
问题原因
你现有代码的写法相当于将三个国旗emoji字符串拼接为了一个整体传入add_reaction()方法,而该方法单次调用仅支持传入单个表情参数,因此无法实现添加三个独立反应的效果。
解决方法
使用Python标准库asyncio提供的gather()方法,可在单条await语句内并发执行多个异步任务,既不需要循环,也不需要编写多条独立的await语句:
import asyncio @bot.command(name="test") async def test(ctx): # 要完全实现单行效果,直接去掉参数间的换行写在同一行即可 await asyncio.gather( ctx.message.add_reaction("🇪"), ctx.message.add_reaction("🇾"), ctx.message.add_reaction("🇴") )
asyncio.gather()会同时运行所有传入的协程任务,等待全部任务执行完成后再返回,执行效率比顺序添加反应更高。
内容的提问来源于stack exchange,提问作者DwarfmanDDH
相关产品推荐
相关产品推荐

