[英]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.