首页 > 解决方案 > 如果需要太长时间,如何在 python 中终止 exec() 函数?

问题描述

我正在尝试制作一个接收用户代码并运行它的函数:

code = input("Your code: ")

def execute(c):
    exec(c)
    
execute(code)

但是,如果用户进入无限循环,该函数将永远运行。

exec()如果函数花费的时间太长,有没有办法终止函数?例如,如果代码执行时间超过 15 秒,则程序终止。

提前致谢。

标签: pythonpython-3.x

解决方案


有多种解决方案,例如,您可以传递全局变量停止条件,并在满足条件后从 exec 内部引发异常。其他解决方案是在单独的线程/进程中运行 exec 并在需要时发送一些停止信号。


推荐阅读