.endswith()方法引发异常“ AttributeError:'str'对象没有属性'value'”

时间:2020-11-04 07:08:37

标签: python python-3.x discord.py discord.py-rewrite ends-with

我正在尝试使用库discord.py创建“派系机器人”。我的机器人的create命令引发异常AttributeError: 'str' object has no attribute 'value'。这是我的代码:

@commands.command()
async def c(self, ctx, color: str, *, name: str):
    name_lower = name.lower()

    if name_lower.endswith("owner"):
        embed = discord.Embed(
            title=":x: Error Creating Faction",
            colour=discord.Colour.purple(),
            description="Make sure your faction name doesn't end with the word **owner**."
        )
        await ctx.send(embed=embed)
    else:
        if name_lower.endswith("faction"):
            role_name = name_lower.capitalize()
        else:
            role_name = f"{name_lower.capitalize()} Faction"

        await ctx.guild.create_role(name=role_name, color=color)
        await ctx.guild.create_role(name=f"{role_name} Owner", color=color)

        await ctx.message.add_reaction(":white_check_mark:")

该命令将颜色字符串和名称字符串作为输入。在第5行(if name_lower.endswith("owner"):上,它检测name的小写版本是否以单词“ owner”结尾。问题是,此行引发异常AttributeError: 'str' object has no attribute 'value'

是什么原因造成的,我该如何解决?

1 个答案:

答案 0 :(得分:0)

该错误的最常见来源是重新定义变量并隐藏实际变量时。 我看不到整个程序,但是我建议您确认是否在程序中重新定义了任何变量(主要是由于输入错误)。

一个很好的例子是:

for items in items:
  // loop