在 Python 中的 if 语句上重新加载主脚本

Reloading main script on if statement in Python

我有一个 IRC 机器人在 twisted 上工作。我希望他通过外部输入重新加载自己(断开连接,重新打开他的主 .py 文件,其中包含他 运行 时所做的所有更改,然后重新开始)

if 语句类似于:

if msg.startswith(".restart"):
    if user in admin:
        msg = "Restarting"
        SendMsg(self, channel, msg)
        reload(main.py)

我找到的唯一答案是如何重新加载模块。

编辑:做我想做的事情的最佳答案是在接受答案下面的评论中

重新加载脚本本身是没有意义的。在哪里继续执行? 唯一的可能就是从头开始重启,这样就等于杀掉进程再启动了。

您可以做的是将尽可能多的代码放在不同的模块(但不是主循环)中,然后从主脚本中调用该模块。 并且,当主脚本看到 .reload 命令时,重新加载模块。