Python/Discord.py - 如何停止所有正在运行的代码但不停止程序?

时间:2021-02-04 00:21:42

标签: python discord.py

我正在制作一个 Discord 机器人,其中包含许多需要一段时间才能完成的命令(例如循环),因此我还希望有一个命令可以停止任何正在运行的代码。我试过 sys.exit 但我不想每次都必须重新启动程序才能接受另一个输入。有人知道我能做什么吗?

1 个答案:

答案 0 :(得分:1)

这取决于您的代码的格式化方式,但您可能希望使用使用布尔或 return 语句的函数:

def foo():
    if end_this:
        return
    # stuff

如果您有一些设置为 end_this 的跟踪布尔值 True,函数 foo() 将不会执行下面的所有内容。或者,您可以在代码中使用 while 循环:

def foo():
    while True: # runs forever unless ended
        # stuff

        break

现在,foo() 将无限期地继续,直到到达 break 语句。 if 语句可以包含中断,在中断发生时设置一些逻辑。同样,这可能需要一个 main() 函数来处理之前函数的调用和结束,但它会允许执行以下代码/函数。