python - `exit` 关键字在 Python3 中用 Jupyter Notebook 做什么?

标签 python jupyter-notebook exit keyword

我目前在 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 中,exitquit 被设置为 IPython.core.autocall.ExitAutocall 的实例,IPyAutocall 的子类。 IPython 识别这种类型的对象,因此当执行仅包含 exitquit 的行时,IPython 实际上退出。

In [1]: exit
[IPython dies here]

Jupyter notebook 的 IPython 内核将 exitquit 设置为密切相关的 IPython.core.autocall.ZMQExitAutocall 的实例。 ,它有一些额外的功能来支持 keep_kernel 参数,但在其他方面是一样的。

不过,只有当引用可自动调用对象的行是单元格的全部内容时,此功能才会触发。在一个循环中,自动调用功能不会触发,所以我们回到了没有任何事情发生的状态。

事实上,发生的情况比正常交互模式下发生的情况还要少 - 在正常的非 IPython 交互 session 中,由于差异,此循环会在每次迭代时打印“使用退出()...”消息IPython 和常规交互模式如何处理表达式自动打印。

关于python - `exit` 关键字在 Python3 中用 Jupyter Notebook 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53676034/

相关文章:

python - Python 中列表的比较

python-2.7 - PANDAS:有没有一种自然的方法可以在给定当前行和列的情况下获取上一行中单元格的值?

python - 一个简单的网络爬虫的问题

python - 删除一系列字符串的最后一个字符

windows - 浏览器中的 jupyter notebook 黑屏

python - 远程 Jupyter Notebook + Docker -- 不更新文件目录?

ios - 使用PhoneGap在iPhone中单击按钮后退出应用程序

c - 是否可以通过按键随时退出没有线程的 C 控制台应用程序?

java - 如何使用 esc 或按钮 Java 终止程序

python - 如何以最Pythonic的方式简化这个?