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

在python中SIGINT本质上是不可靠的吗?,python,garbage-collection,generator,sigint,keyboardinterrupt,Python,Garbage Collection,Generator,Sigint,Keyboardinterrupt,我有一个应用程序,它依赖于SIGINT实现正常关机。我注意到,每隔一段时间它就会继续运行。原因原来是xml/etree/ElementTree.py中的一个生成器 如果清理生成器时SIGINT到达,则忽略所有异常(回想一下SIGINT的默认操作是引发键盘中断)。这不是这个特定的生成器所独有的,也不是一般的生成器所独有的 来自python文档: “由于调用\uu del\uuu()方法的不稳定情况,在执行过程中发生的异常将被忽略,并将警告打印到sys.stderr” 在用python编程的五年多时

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

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

来自python文档:

“由于调用
\uu del\uuu()
方法的不稳定情况,在执行过程中发生的异常将被忽略,并将警告打印到sys.stderr”

在用python编程的五年多时间里,这是我第一次遇到这个问题

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


或者它与这个特定的包和这个特定的生成器有关吗?

(供参考:)这只是一个猜测,但内置类型或Python中未定义
\uu del\uu
的类型不会出现问题。您还可以使用
signal.signal
执行一些操作,以其他方式处理它。