没有提供参数的不同消息,不和谐+蟒蛇



我正在尝试为我的 Discord 机器人创建一个命令列表,并且一直在对整个考验进行原型设计。这就是我得到的,但问题是即使前两个有效,最后一个(应该在没有提供参数时触发)根本不会触发。

@bot.command(pass_context=True)
async def test(ctx, *msg):
msg = ctx.message.content.split(" ", 1)
if msg[1] == "yes":
await bot.say("This is a valid argument!")
# do thing...
else:
await bot.say("Not a valid argument!")
if len(msg) == 0:
await bot.say("Try using an argument. For example: !test yes")

不要覆盖msg,使用命令解析器生成的那个。 首先测试args的长度,然后测试有效值。

@bot.command(pass_context=True)
async def test(ctx, *args):
if not args:
await bot.say("Try using an argument. For example: !test yes")
elif args[0] == "yes":
await bot.say("This is a valid argument!")
else:
await bot.say("Not a valid argument!")

我认为您正在使用list作为msg,因为msg[1]使用数字作为索引。

不确定其他类型,因为我对 Python 不太有经验,但列表的长度是其中的项目数。

test = ["test"]
print(len(test))

输出:1

因此,当您执行if len(msg) == 0时,您正在检查发送的消息中是否有 0 个单词,因此为空。请尝试if len(msg) == 1

最新更新