首页 > 解决方案 > 自定义嵌入命令不起作用 discord.py

问题描述

我试图编写自定义嵌入命令,但出了点问题,这是我的代码:

@bot.command()
async def embed(ctx, tit, desc, col):
  col2 = discord.Color. + col + ()
  embed = discord.Embed(name=tit, description=desc, colour=col2)
  await ctx.send(embed=embed)

错误是:语法无效。任何人都可以帮助我吗?PS。我是新来的,所以如果我写错了什么或者没有写什么,我很抱歉

标签: pythondiscord.py

解决方案


你不能像对字符串那样对那些对象进行操作,如果你有一个字符串,即red,并且想要获取该discord.Colour.red()方法,你可以使用getattr

color = "red"  # hardcoded for explanation purposes
actual_color = getattr(discord.Colour, color)()

color请记住,如果变量无效(如果discord.Colour类没有类似的属性/方法),这将引发错误,您可以添加一个简单的 if 语句来检查它是否有效:

color = "red"  # hardcoded for explanation purposes
actual_color = getattr(discord.Colour, color)
if actual_color is not None:
    actual_color = actual_color() 
    ...  # valid color
else:
    # invalid color

推荐阅读