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

如何让Python开发的Discord机器人提及特定成员?语法报错求助

解决Discord机器人提及成员的语法错误问题

嗨,我刚看到你的问题,咱们来快速搞定这个语法错误!

你遇到的问题很典型:<@USER_ID>是Discord识别的提及格式,但在Python代码里你不能直接把它当成独立参数丢给send方法——Python会把它当成无效语法,这就是错误的根源。

修正后的代码示例

你需要把提及格式和其他文本整合成一个完整的字符串,这里推荐用Python的f-string(简洁又直观),或者字符串拼接:

async def on_message(self, message):
    if message.author == self.user:
        return
    # 这里改成lower()可以避免大小写匹配问题,比如用户发"call george"也能触发
    if message.content.lower() == 'call george':
        # 把USER_ID替换成George的实际用户ID,比如1234567890
        await message.channel.send(f'Hey <@USER_ID> are you here?')

补充说明

  1. 字符串拼接替代方案:如果你不想用f-string,也可以这样写:
    await message.channel.send('Hey ' + '<@1234567890>' + ' are you here?')
    
    不过f-string的可读性更高,优先推荐。
  2. 大小写兼容:你的原代码里判断的是'Call George',但你说发送的是"call George",加上.lower()可以让触发更灵活,不管用户输入大写还是小写都能匹配。
  3. 获取用户ID:如果还不确定怎么获取George的USER_ID,记得在Discord里开启开发者模式,然后右键点击George的头像,选择“复制用户ID”即可。

这样修改后,机器人就能正确提及George并发送消息啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:53:49