当前位置: 首页 > 知识库问答 >
问题:

退出()在Python-3. x和IPython中的工作方式不同

杜经艺
2023-03-14

内置函数quit()在Python-3中的行为不同。x和IPython 3。如果在IPython中执行,以下代码将打印Hello,但不会在Python中打印任何内容:

quit()
print("Hello")

在IPython中退出()的目的是什么?改变其行为的原因是什么?

共有1个答案

姚烨
2023-03-14

它看起来像是IPython退出/退出功能”简化为只设置一个标志,表示“下次检查时您应该退出”。它不会引发SystemExit本身,因此它可能依赖于一个间歇性检查,如果您同时对两个命令进行排队,则在第二个命令完成之前不会执行该检查。

您可以在IPython提示符下自己检查,首先运行quit查看它是一个可调用类,其\uu call\uu委托给self_知识产权。询问退出()。接下来,运行quit_知识产权。问你出口 ask\u exit只是设置了一个标志,self。exit_now=True(如果您选中它,它是一个普通属性,而不是执行隐藏代码的属性)。

欢迎您跟踪IPython检查的位置;我猜它是在IPython的任何给定行或单元格完成后完成的。

从根本上说,区别在于IPython中的quit与常规Python的交互式interpeter中的quit不同<代码>退出/退出,因为内置的功能将被替代的交互式口译员所取代,不需要完全相同的行为。如果您想要一致的退出行为,import sys并运行sys。exit(),这也是在脚本内部早期退出的正确方法,并且不是交互式提示的挂钩。

 类似资料:
  • 问题内容: 我使用IPython笔记本,并希望能够选择在IPython中创建2.x或3.x python笔记本。 我最初有Anaconda。使用Anaconda时,必须更改全局环境变量以选择所需的python版本,然后才能启动IPython。这不是我想要的,所以我卸载了Anaconda,现在使用MacPorts和PiP设置了自己的安装。看来我还是要用 在python 2.x和3.x之间切换。这并不

  • 我使用IPython笔记本,希望能够选择在IPython中创建2. x或3. x python笔记本。 我最初有蟒蛇。使用Anaconda,必须更改全局环境变量,以选择您想要的python版本,然后可以启动IPython。这不是我要找的,所以我卸载了Anaconda,现在已经使用MacPorts和PiP建立了自己的安装。看来我还得用 在python 2之间切换。x和3。x、 这并不比水蟒的解决方案

  • 问题内容: boost.python如何处理Python 3?仅限Python 2吗? 问题答案: 较新版本的Boost应该可以在Python V3.x上正常工作。早在2009年成功完成Google Summer of Code项目后,我相信很早以前就已经添加了此支持。 将Python V3与Boost结合使用的方法是,通过添加以下示例来正确配置构建系统: 到您的user-config.jam文件

  • 问题内容: 我在Windows 7上使用Python 3.x进行大部分编程,但是现在我需要使用Python Imaging Library(PIL),ImageMagick和wxPython,所有这些都需要Python2.x。 我可以在Windows 7中同时安装Python 2.x和Python 3.x吗?运行脚本时,如何“选择”应该运行哪个版本的Python?前面提到的程序能否处理一次安装的多

  • 这在python 3中有效,但在python 2(版本2.7)中会发出一个ImportError: Shell命令: mymodule/__init__.py MyModule/X.py MyModule/y.py 但这只适用于Python3,而不适用于Python2(因为相同的ImportError)。 在Python2中使其工作的唯一方法是使用具有以下不推荐符号的相对导入: 我真的不喜欢它,因

  • 问题内容: 我想将日期字符串转换为javascript,请使用以下代码: 是服务器中JSON对象中的UTC时间。 但是以上代码的结果在Firefox和Chrome之间是不同的: Firefox返回: Chrome返回: 1天不一样,我期望的正确结果是Chrome的结果。 如何解决此问题,以便从两者获得相同的结果? 问题答案: UTC的正确格式为(Z为祖鲁时间)。如果不存在,则追加以获取正确的UTC