Python 命令引发异常:AttributeError:';str';对象没有属性';频道';

Python 命令引发异常:AttributeError:';str';对象没有属性';频道';,python,discord.py,Python,Discord.py,可能有两个原因: 您的clear\u消息不在类中,在这种情况下,您应该删除self参数 您的命令位于一个类中,这将表明您正在使用cogs。在这种情况下,您应该将@bot.command替换为@commands.command 根据您给出的代码判断,我认为第一个原因可能是正确的。有两个可能的原因: 您的clear\u消息不在类中,在这种情况下,您应该删除self参数 您的命令位于一个类中,这将表明您正在使用cogs。在这种情况下,您应该将@bot.command替换为@commands.co

可能有两个原因:

  • 您的
    clear\u消息
    不在类中,在这种情况下,您应该删除
    self
    参数
  • 您的命令位于一个类中,这将表明您正在使用cogs。在这种情况下,您应该将
    @bot.command
    替换为
    @commands.command

根据您给出的代码判断,我认为第一个原因可能是正确的。

有两个可能的原因:

  • 您的
    clear\u消息
    不在类中,在这种情况下,您应该删除
    self
    参数
  • 您的命令位于一个类中,这将表明您正在使用cogs。在这种情况下,您应该将
    @bot.command
    替换为
    @commands.command
从你给出的代码来看,我认为第一个原因可能是正确的。

多亏了@Mr_Spaar

问题是“自我”论证,我去掉了它,它工作得很好

感谢@Mr_Spaar


问题是“自我”论证,我去掉了它,它工作得很好

这是一个方法,还是一个普通的旧函数?如果是后者,则需要删除
self
arg。
ctx
是一个参数,因此调用此函数的任何东西都会传递字符串。这是一个方法,还是一个普通的旧函数?如果是后者,则需要删除
self
arg。
ctx
是一个参数,因此调用此函数的任何东西都是传递字符串。第一个是解决方案,我删除了“self”,它成功了,非常感谢!第一个是一个解决方案,我删除了“self”,它成功了,非常感谢!
@bot.command(name="clear", alliases=["purge"])
@commands.has_permissions(manage_messages=True)
async def clear_messages(self, ctx, limit: typing.Optional[int] = 1):
    if 0 < limit <= 100:
        with ctx.channel.typing():
            await ctx.channel.purge(limit = limit)
            await ctx.message.delete()
@bot.command()
async def say(ctx, *args):
    await ctx.send('{}'.format(' '.join(args)))
    await ctx.message.delete()