繁体   English   中英

向 discord 命令添加可选参数

[英]Adding optional arguments to a discord command

@bot.command()
# async def poll(ctx, message, arg1, arg2):
async def poll(ctx, message, *args):
    if len(args) <= 3:

        emoji = '1️⃣'
        pollem = discord.Embed(title='', description=f'{message}')
        pollem.add_field(name='{1} {0}'.format(args[len(args)], emoji), value=args[len(args)], inline=False)
        pollem.add_field(name='{1} {0}'.format(args[len(args)], emoji), value=args[len(args)], inline=False)
       # pollem.add_field(name='{1} {0}'.format(args[2], emoji), value=args[2], inline=False)
       # pollem.add_field(name='{1} {0}'.format(args[3], emoji), value=args[3], inline=False)

所以这就是我现在的代码。 命令是.poll {message} {arg 0} {arg 1} {arg 2} {arg 3} {arg (n)}现在我试图获得一个可选的 args,但我不知道我将如何到达那里. 如果我像.poll {message} {arg 0} {arg 1}一样尝试,我得到

IndexError: tuple index out of range

有什么建议 ?

Python 索引从 0 开始。如果你执行args[len(args)]你保证索引超出范围。 如果要访问最后一个参数,则需要执行args[-1]

编辑:正如评论中所说,你只需要做args[-1]

你能试试这个吗?

@bot.command()
# async def poll(ctx, message, arg1, arg2):
async def poll(ctx, message, *args):
    if 0 < len(args) <= 3:

        emoji = '1️⃣'
        pollem = discord.Embed(title='', description=f'{message}')
        pollem.add_field(name='{1} {0}'.format(args[len(args) - 1], emoji), value=args[len(args) - 1], inline=False)
        pollem.add_field(name='{1} {0}'.format(args[len(args) - 1], emoji), value=args[len(args) - 1], inline=False)

抱歉,又耽误了几天。 这是代码。

        for x in range(1, len(args), 2):
            context.append(args[x])

        for a in range(0, len(args), 2):
            pollem.add_field(name=' {1} {0}'.format(args[a], reaction[int(r / 2)]), value=context[int(a / 2)],
                             inline=False)

        ms = await ctx.channel.send(embed=pollem)

    else:
        await ctx.channel.send('Check Args')

如果有人有任何问题,只是嗯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM