DYZ*_*DYZ 4 python exit ipython python-3.x
内置函数quit()
在Python-3.x和IPython 3中表现不同.Hello
如果在IPython中执行,则打印以下代码,但不会在Python中打印任何内容:
quit()
print("Hello")
Run Code Online (Sandbox Code Playgroud)
quit()
IPython 的目的是什么?改变行为的原因是什么?
它看起来像IPython
's quit
/ exit
"function"简化为只设置一个标志,表示"下次检查时你应该退出".它不会自行提升SystemExit
,因此它可能依赖于间歇性检查,如果您一次排队两个命令,则在第二个命令完成之前不会执行.
您可以在IPython提示符下自行检查,首先运行quit??
以查看它是一个可__call__
委托的可调用类self._ip.ask_exit()
.接下来,运行quit._ip.ask_exit??
,您将看到ask_exit
只设置一个标志,self.exit_now = True
(如果您检查它,它是一个普通属性,而不是property
隐藏代码执行).
欢迎您追踪IPython
检查的位置; 我猜它是在完成任何给定的行或单元格之后IPython
完成的.
从根本上说,不同之处在于quit
IPython从未与quit
常规Python的交互式互操作相同; quit
/ exit
作为内置程序旨在替换为备用交互式解释程序,并且不需要表现完全相同.如果您想要一致的退出行为,import sys
并且运行sys.exit()
,这也是在脚本内部提前退出的正确方法,而不是作为交互式提示的挂钩.
归档时间: |
|
查看次数: |
535 次 |
最近记录: |