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

用Python开发Discord机器人:提及消息代码缩进错误求助

排查Discord机器人代码的缩进错误问题

问题描述

我正在用Python开发Discord机器人,尝试实现提及消息功能,编写了如下代码:

@client.event
async def ze_message(msg):
    bot = f'<@{client.user.id}>'
          if message.content == bot:

    await message.channel.send("If you need any help type .help")

运行后出现错误:

if message.content == bot:
IndentationError: unexpected indent

错误原因及修复方案

  1. 缩进不规范:Python对缩进要求严格,if语句的缩进级别必须和上方的变量定义保持一致,你这里的if缩进过多,导致语法报错。
  2. 事件函数名错误:Discord.py的消息监听事件固定函数名为on_message,而非ze_message,否则客户端无法识别该事件。
  3. 参数名不匹配:函数定义的参数是msg,但代码中使用了message,会触发NameError,需要统一参数名。
  4. 代码块逻辑缺失:if语句后没有对应的缩进代码块,原本的await语句需要嵌套在if块内,才能实现“被提及才发送提示”的逻辑。

修正后的代码:

@client.event
async def on_message(message):
    bot_mention = f'<@{client.user.id}>'
    if message.content == bot_mention:
        await message.channel.send("If you need any help type .help")
    # 必须添加该行,否则默认命令处理会被覆盖
    await client.process_commands(message)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:55:39