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

开发Discord Bot检测消息发送者报错:NameError: name 'message'未定义

解决Discord Bot的NameError问题

你的问题出在on_message事件函数的参数定义上:Discord.py的on_message事件接收的参数是消息对象message,但你写成了self,导致函数内部完全没有定义message变量,所以才会触发NameError: name 'message' is not defined错误。

修正后的代码如下:

@bot.event
async def on_message(message):
    # 不响应自身发送的消息
    if message.author == bot.user:
        return

    if message.content == 'ping':
        await message.channel.send('pong')

需要注意两个关键点:

  • 将函数参数从self改为message,这样函数内部才能正确获取到当前的消息对象
  • 判断消息发送者是否为机器人自身时,直接使用你定义的机器人实例bot.user即可,不需要用self.user(这里不是类中的方法,不需要self参数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:52:03