Python 使用终止进程进行测试
Python Testing with Kill Process
在测试 Python 脚本时,我通常会在脚本中使用 'raw_input()' 或 'input()' 作为标记,当到达该标记时,按 ctrl + c 终止我的命令提示符中的过程。
我担心这会导致内存泄漏,这个简短的线程表明它不应该 -
以这种方式测试脚本是不好的做法吗?会不会有什么负面影响?
不确定泄漏,但我确定断点是您的朋友。在idle中右击要停止的行,点击设置断点,调试完成后清除。
通常使用 raw_input()
或 input()
和 ctrl
+ c
来终止程序是没有问题的。当您在 raw_input
或 input
调用期间按 ctrl
+ c
时,您只是引发了 KeyboardInterrupt
异常并且 Python 知道如何处理异常适当地。如果你不处理 KeyboardInterrupt
,这个异常将由默认的顶级异常处理程序处理,这个默认的异常处理程序在退出解释器之前打印异常发生的堆栈跟踪。
对于某些应用程序,它们可能不会在退出后或您终止进程后释放资源,当今的大多数操作系统都足够智能,可以在未使用时释放内存。但这不适用于你的问题。
在测试 Python 脚本时,我通常会在脚本中使用 'raw_input()' 或 'input()' 作为标记,当到达该标记时,按 ctrl + c 终止我的命令提示符中的过程。
我担心这会导致内存泄漏,这个简短的线程表明它不应该 -
以这种方式测试脚本是不好的做法吗?会不会有什么负面影响?
不确定泄漏,但我确定断点是您的朋友。在idle中右击要停止的行,点击设置断点,调试完成后清除。
通常使用 raw_input()
或 input()
和 ctrl
+ c
来终止程序是没有问题的。当您在 raw_input
或 input
调用期间按 ctrl
+ c
时,您只是引发了 KeyboardInterrupt
异常并且 Python 知道如何处理异常适当地。如果你不处理 KeyboardInterrupt
,这个异常将由默认的顶级异常处理程序处理,这个默认的异常处理程序在退出解释器之前打印异常发生的堆栈跟踪。
对于某些应用程序,它们可能不会在退出后或您终止进程后释放资源,当今的大多数操作系统都足够智能,可以在未使用时释放内存。但这不适用于你的问题。