标签:python python-3-x ipython exit
内置函数quit()在Python-3.x和IPython 3中表现不同.如果在IPython中执行,则以下代码打印Hello,但不在Python中打印任何内容:
quit()
print("Hello")
在IPython中quit()的目的是什么?改变行为的原因是什么?
解决方法:
看起来IPython的退出/退出“功能”简化为只设置一个标志,表示“下次检查时应退出”.它不会引发SystemExit本身,因此它可能依赖于间歇性检查,如果您一次排队两个命令,则在第二个命令完成之前不会执行.
您可以在IPython提示符下自行检查,先运行退出?看到它是一个可调用的类,其__call__委托给self._ip.ask_exit().接下来,运行quit._ip.ask_exit ??并且你会看到ask_exit只是设置了一个标志,self.exit_now = True(如果你检查它是一个普通的属性,而不是一个隐藏代码执行的属性).
欢迎您跟踪IPython检查的位置;我猜测它是在IPython的任何给定行或单元格完成之后完成的.
从根本上说,不同之处在于IPython中的退出与普通Python的交互式插件中的退出从未如此相同;作为内置的退出/退出旨在替换为备用交互式解释器,并且不需要表现完全相同.如果您想要一致的退出行为,请导入sys并运行sys.exit(),这也是在脚本内部提前退出的正确方法,并不打算作为交互式提示的挂钩.
标签:python,python-3-x,ipython,exit 来源: https://codeday.me/bug/20190828/1754855.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。