我目前在 Jupyter Notebook 中使用 Python3,我刚遇到关键字 exit
。这个关键字有什么作用?
with open("some_file.txt") as f:
for lines in f:
print(lines)
exit
最佳答案
循环中的 exit
行什么都不做。不过,它们什么都不做的原因比 exit
在 Python 中什么都不做的通常原因要复杂一些。
通常,单独一行的 exit
不会退出 Python。至多,在交互模式下,它会打印一条消息告诉你如何退出 Python(消息在 _sitebuiltins.Quitter.__repr__
中实现):
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
IPython 做了一些不同的事情。在 IPython 的许多额外系统中,为了交互方便,有一个系统 autocall特定类型的实例,IPython.core.autocall.IPyAutocall
。 (这与 %autocall
魔法相似但不同。)
在 IPython 中,exit
和 quit
被设置为 IPython.core.autocall.ExitAutocall
的实例,IPyAutocall
的子类。 IPython 识别这种类型的对象,因此当执行仅包含 exit
或 quit
的行时,IPython 实际上退出。
In [1]: exit
[IPython dies here]
Jupyter notebook 的 IPython 内核将 exit
和 quit
设置为密切相关的 IPython.core.autocall.ZMQExitAutocall
的实例。 ,它有一些额外的功能来支持 keep_kernel
参数,但在其他方面是一样的。
不过,只有当引用可自动调用对象的行是单元格的全部内容时,此功能才会触发。在一个循环中,自动调用功能不会触发,所以我们回到了没有任何事情发生的状态。
事实上,发生的情况比正常交互模式下发生的情况还要少 - 在正常的非 IPython 交互 session 中,由于差异,此循环会在每次迭代时打印“使用退出()...”消息IPython 和常规交互模式如何处理表达式自动打印。
关于python - `exit` 关键字在 Python3 中用 Jupyter Notebook 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53676034/