Nextcord按钮机器人缩进错误:制表符与空格混用问题求助
修复缩进错误:制表符与空格混用问题
报错信息翻译
文件main.py第27行,代码行
hi = client.get_user(id)出现缩进错误:制表符与空格缩进使用不一致
问题原因
Python对缩进语法要求严格,同一代码块内必须统一使用空格或制表符,不能混合两种缩进方式。你的代码中await hi.send("hello")这行的缩进级别与上一行不一致,且混用了制表符和空格,触发了缩进错误。
解决方案
- 统一缩进风格:全程使用4个空格作为缩进(Python官方推荐规范),彻底禁用制表符缩进。
- 修正错误缩进:调整
await代码行的缩进,使其与上一行保持相同级别。 - 修复未定义变量:代码中的
id是未定义变量,需替换为实际用户ID,或从交互对象中直接获取目标用户。
修正后的代码
@bot.command(name='support') async def support(ctx): hi = Button(label="click me", style=ButtonStyle.blurple) subscribe = Button(label="subscribe", url="https://www.youtube.com/channel?sub_confirmation=1") async def hi_callback(interaction): # 替换为目标用户的实际ID,或用interaction.user获取触发按钮的用户 target_user = client.get_user(123456789) await target_user.send("hello") hi.callback = hi_callback myview = View(timeout=180) myview.add_item(hi) myview.add_item(subscribe) await ctx.send("hi", view=myview)
额外提示
- 如果需要给点击按钮的用户发消息,可直接替换为
await interaction.user.send("hello"),无需手动指定ID。 - 建议在编辑器中开启「显示空白字符」功能,方便快速排查缩进混用问题。
内容的提问来源于stack exchange,提问作者jean cool
相关产品推荐
相关产品推荐

