python - 自定义嵌入命令不起作用 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。我是新来的,所以如果我写错了什么或者没有写什么,我很抱歉
解决方案
你不能像对字符串那样对那些对象进行操作,如果你有一个字符串,即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
推荐阅读
- arduino - Arduino 中的 Serial.write 有一些问题
- sql-server - SQL 触发器在表更新时插入值
- angularjs - 在 Ionic2_Calendar 中加载事件
- r - 为什么我在 R 的 agrep 中翻转 pattern 中的字符串和 x 时没有得到相同的模糊匹配结果?
- swift - 如何在选项卡“TabBarController”之间导航并在它们之间传输数据?
- bash - tmux - 将所有键绑定输出到文件
- postgresql - 使用 group by [Postgres] 时选择常用值
- javascript - 如何以及在什么帮助下构建一个 js 包,它将包含和使用所有使用的依赖项
- git - 如何从 pre-push git hook 运行 .exe?
- css - 如何使用 flexbox 将项目彼此相邻?