【问题标题】:Command Object in discord.pydiscord.py 中的命令对象
【发布时间】:2020-10-27 01:42:45
【问题描述】:

我正在制作一个帮助命令,我想打印一个命令的参数名称。我有一个命令对象,我正在使用 command.params,但我不知道如何从中提取值

@client.command()
async def Help(ctx):
    embed = Embed(title="Available Commands")
    for command in client.commands:
        params = command.params
        print(params)
        embed.add_field(name=f"{command.name}{command.params}", value=f"{command.brief}", inline=False)
        await ctx.send(embed=embed)

目前返回:

OrderedDict=([('ctx', < Parameter "ctx" >), ('card', < Parameter "card" >)])

如何提取值?

【问题讨论】:

    标签: python discord.py


    【解决方案1】:

    您需要在 for 循环中探索列表,然后将所需的项目附加到列表中:

    • 如果您只想要参数名称
    OrderedDict=([('ctx', < Parameter "ctx" >), ('card', < Parameter "card" >)])
    
    params = []
    for item in OrderedDict:
        params.append(item[0])
    
    • 如果你只想要 param 对象
    OrderedDict=([('ctx', < Parameter "ctx" >), ('card', < Parameter "card" >)])
    
    params = []
    for item in OrderedDict:
        params.append(item[1])
    
    • 如果你想要两个
    OrderedDict=([('ctx', < Parameter "ctx" >), ('card', < Parameter "card" >)])
    
    params = {}
    for item in OrderedDict:
        params[item[0]] = item[1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2021-08-28
      • 2021-01-22
      相关资源
      最近更新 更多