开发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
相关产品推荐
相关产品推荐

