discord.py中if not prefix分支未执行问题排查求助
问题原因及解决方法
问题根源
你定义的prefix参数是必填参数,在Discord.py框架中,如果用户调用命令时未提供必填参数,框架会直接跳过该命令的执行,不会进入函数内部。所以当你输入!prefix不带参数时,prefix函数根本没被触发,if not prefix的代码块自然不会执行。
解决方法
把prefix参数设为可选参数,给它一个默认值(比如None),这样用户不带参数调用时,参数会被赋值为默认值,函数就能正常执行,进而触发判断逻辑:
@commands.command(aliases=['префикс']) async def prefix(self, ctx, prefix=None): if not prefix: await ctx.send(f"Current prefix - {self.client.command_prefix}") else: self.client.command_prefix = prefix await ctx.send(f"Prefix changed to {prefix}")
修改后,用户输入!prefix不带参数时,prefix会被设为None,if not prefix条件成立,就能正常发送当前前缀的消息;带参数时也能正常修改前缀。
内容的提问来源于stack exchange,提问作者DamAnD
相关产品推荐
相关产品推荐

