繁体   English   中英

如何从python中的交互式shell中打破无限生成器循环

[英]How to break from infinite generator loops from interactive shell in python

我在 Python 中学习itertools ,不小心在 iPython shell 中调用了一个无限循环,这是我的输入:

import itertools as it
list(it.zip_longest(it.count(), [1,2]))

最后一行将无限期运行,直到计算机崩溃。

我试图用Ctrl-C终止执行,但没有用。

在这种情况下如何强制执行终止?

Python 是一种interpreted语言,因此它会在每一行之后检查指令。 Ctrl-C也会发生同样的情况。

Ctrl-CKeyboardInterrupt发送到 Python 解释器,并在每条 Python 指令之后进行检查,但it.zip_longest(it.count(), [1,2])的输出生成在 C 代码中处理,随后中断处理但解释器从不检查下一条指令,因此即使在Ctrl-C ,执行也不会停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM