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
问题是“自我”论证,我去掉了它,它工作得很好 这是一个方法,还是一个普通的旧函数?如果是后者,则需要删除
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()