【问题标题】:Python Testing with Kill Process使用终止进程进行 Python 测试
【发布时间】:2017-05-18 20:32:37
【问题描述】:

在测试 Python 脚本时,我经常使用“raw_input()”或“input()”作为脚本中的标记,当到达该标记时,在命令提示符下执行 ctrl + c 来终止进程.

我担心这会导致内存泄漏,这个简短的线程表明它不应该 - killing python process leads memory leak?

以这种方式测试脚本是不好的做法吗?它会导致任何负面影响吗?

【问题讨论】:

  • 与任何好问题一样,正确答案是视情况而定。在简单的情况下,你很好。
  • 当你点击 ctrl + c 时,你会得到一个 KeyboardInterrupt 抛出异常。然后它和其他任何东西一样。

标签: python testing process kill


【解决方案1】:

通常使用raw_input()input()ctrl + c 来终止您的程序没有问题。当您在raw_inputinput 调用期间按ctrl+ c 时,您只是在引发KeyboardInterrupt 异常,Python 知道如何正确处理异常。如果您不处理KeyboardInterrupt,则此异常将由默认的顶级异常处理程序处理,此默认异常处理程序在退出解释器之前打印发生异常的堆栈跟踪。

对于某些应用程序,它们在退出或您终止进程后可能不会释放资源,如今大多数操作系统都足够聪明,可以在未使用时释放内存。但这不适用于您的问题。

【讨论】:

  • 一旦你开始生成新进程,这个一般建议就不再适用了。
【解决方案2】:

不确定是否存在泄漏,但我确信断点是您的朋友。在空闲时右键单击要停止的行并单击设置断点,然后在完成调试后清除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2018-10-11
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多