在我的Python-Discord Bot中,我想创建一个命令,它会导致循环运行。当我输入第二个命令时,循环应该停止。粗略地说:
@client.event
async def on_message(message):
if message.content.startswith("!C1"):
while True:
if message.content.startswith("!C2"):
break
else:
await client.send_message(client.get_channel(ID), "Loopstuff")
await asyncio.sleep(10)
所以它每10秒就在一个频道里发布“Loopstuff”,当我进入的时候就停止了!C2
但我自己想不出来。-。在
(不为自己尝试)尝试:
while not message.content.startswith("!C2")
对于
While
子句,后跟else
子句的内容。在在你的
on_message
函数内message
内容不会改变。因此,另一条消息将导致再次调用on_message
。您需要一个同步方法,即全局变量或类成员变量,当!C2
消息到达时,这些方法将被更改。在作为补充说明,最好提供一个独立的示例,而不仅仅是一个函数。在
相关问题 更多 >
编程相关推荐