You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py中如何让机器人编辑自己发送的消息?

错误原因

  • 调用edit()方法时参数传参方式错误:discord.py的消息编辑方法仅接受self作为唯一位置参数,新内容需要通过content关键字参数传入,直接传入字符串会触发参数数量不匹配的报错。
  • 编辑的消息对象错误:代码中的message是用户发送的触发指令的消息,你需要编辑的是机器人发送的消息,要先存储机器人发消息的返回对象。
  • 阻塞问题:time.sleep()是同步方法,会阻塞机器人整个事件循环,导致期间所有其他功能无法响应,异步场景下需使用asyncio.sleep()。

修复后的代码

# 头部先导入asyncio模块
import asyncio

if message.content.startswith('(dev)messageedit'):
    # 存储机器人发送的消息实例
    bot_sent_msg = await message.channel.send('old message')
    # 异步等待1秒
    await asyncio.sleep(1)
    # 调用机器人消息的编辑方法,通过content关键字传新内容
    await bot_sent_msg.edit(content='new message')

内容的提问来源于stack exchange,提问作者aster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:54:02