最近我倾向于创建不和谐机器人。但遇到了这个。我之间有何不同
if message.content.startswith('$del'):
if 'jokes' in db.keys():
index = int(message.content.split('$del ', 1)[1])
msg = delete_joke(index)
if msg == "No jokes to delete":
await message.channel.send(msg)
else:
await message.channel.send('deleted successfully')
else:
await message.channel.send('No jokes in the database')
和
if message.content.startswith('$delall'):
await message.channel.send(del_all())
由于 message.startswith("") 仅检查起始字符,因此即使我给出 '$dellall' 作为命令,它也总是调用 '$del'。
我想到的一种方法是在我可能使用的所有“$del”末尾写“
if message.content.startswith('$del'):
”,但它仍然会调用“$del”。随着代码和命令的增加,这不会成为问题吗?如果还有其他更好的方法请告诉我。
您可以像在第一个 if 语句中那样首先拆分 message.content 来获取索引,但这次您获得拆分消息的第一项:
msg = message.content.split()
if msg[0] == "$del":
#rest of the code
elif msg[0] == "$delall":
#rest of the code