SIGINT 在 python 中本质上是不可靠的吗?

mr.*_*lex 5 python garbage-collection generator sigint keyboardinterrupt

我有一个依赖于SIGINT正常关闭的应用程序。我注意到它每隔一段时间就会继续运行。原因原来是xml/etree/ElementTree.py.

如果SIGINT在清理生成器时到达,则忽略所有异常(回想一下 的默认操作SIGINT是引发 KeyboardInterrupt)。这不是这个特定生成器或一般生成器所独有的。

从 python 文档:

“由于__del__()调用方法的不稳定环境,在执行过程中发生的异常将被忽略,而是向 sys.stderr 打印警告”

在超过五年的 Python 编程中,这是我第一次遇到这个问题。

如果垃圾收集可以在任何时候发生,那么SIGINT理论上也可以在任何时候被忽略,我永远不能依赖它。那是对的吗?我一直很幸运吗?

或者是关于这个特定的包和这个特定的生成器?