You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py中输入十六进制颜色码设置Embed颜色遇TypeError问题咨询

问题解决:Discord Embed颜色设置错误修正

错误原因

你遇到的TypeError是因为:

  • 输入的hexc是字符串类型,但hex()函数要求传入整数,直接传字符串会触发类型错误
  • discord.Embed的color参数需要的是十进制整数形式的颜色值,而非hex()返回的十六进制字符串

修正步骤

  1. 处理输入的十六进制字符串:移除可能带有的#前缀(用户可能输入#FFFFFF或FFFFFF两种格式)
  2. 使用int(hexc_cleaned, 16)将十六进制字符串转换为十进制整数,这才是color参数需要的格式
  3. 修复原代码的语法错误(discord.Embed定义末尾缺少右括号)

修正后的代码

async def parameter(self, interaction: Interaction, hexc: str) -> None:
    # 移除可能的#前缀
    hexc_cleaned = hexc.lstrip('#')
    try:
        # 将十六进制字符串转为十进制整数
        color_int = int(hexc_cleaned, 16)
        embed = discord.Embed(title="TEST", description="Test2", color=color_int)
        await interaction.response.send_message(embed=embed)
    except ValueError:
        # 处理无效的十六进制输入
        await interaction.response.send_message("请输入有效的十六进制颜色码,例如:FFFFFF 或 #FF0000")

额外说明

  • 十六进制颜色码的有效格式:6位字符(0-9, A-F/a-f),可带或不带#前缀
  • 异常处理能避免用户输入无效内容时命令崩溃

内容的提问来源于stack exchange,提问作者Render

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:48:35