Py学习  »  Python

IPython 8.0 大版本更新,支持代码自动补全

程序员遇见GitHub • 2 年前 • 190 次点击  

公众号关注 “程序员遇见GitHub

设为“星标”,重磅干货,第一时间送达

来源:量子位 | 公众号 QbitAI

酝酿了3年多,IPython 8.0终于来了。

现在,用上最新版本,你不仅能在命令行里使用Black重新格式化代码,还能获得更好的自动代码补全和Debug体验。

更多详情,咱们接着往下看。

优化报错

在8.0版本之前,如果代码出错,IPython的错误回溯会显示一个哈希值,用于编译Python AST,就像这样:

而现在,错误回溯已经正确格式化,能够显示出bug所在的具体单元格编号。

另外,IPython 8.0还集成了stack_data,这个包提供了更智能的追踪信息,能够突出显示发生错误的AST节点,帮助快速定位bug。

比如对于这样一段代码:

调用bar(),就能获得一个IndexError,IPython 8.0会告诉你索引错误具体发生在哪里。

注:在终端和notebook中,用^标记的位置将显示为高亮。

还有一个对生产力有较大影响的改进,就是在错误回溯的文件名后面添加冒号和行号。

许多终端和编辑器都允许在使用这种语法时,直接跳转到相关文件/行。

自动代码补全建议

除了更好的Debug体验,如果你很喜欢Ptpython里的代码自动补全功能,那么现在在IPython 8.0里你也能用上了。

通过ctrl-f,或ctrl-e,或按下右箭头,就可以接受这些建议。

alt-f快捷键则可以只接受建议的第一个单词。

目前,自动建议只能在emacs或vi模式中显示。

使用“?”和”??”查看对象信息

在IPDB中,现在可以用“?”和“??”来显示对象信息,在使用IPython提示符时也一样:

在CLI中用black自动格式化

如果black被安装在与IPython相同的环境中,那么现在,终端IPython将在默认情况下尽可能重新格式化命令行(CLI)中的代码。

当然,你也可以用 —TerminalInteractiveShell.autoformatter=None 来禁用该选项。

历史范围全局功能

此前,在使用%history时,用户可以指定session和行:

或是使用全局模式:

但在8.0以前,这两种模式不能兼得。如果用户同时指定了2种模式,IPython将应用全局模式(对所有历史记录进行全局化)并忽略指定范围。

现在,此功能得到加强,如果用户同时指定了范围和glob模式,则glob模式将应用于指定的历史范围。

如果你还想了解更多信息,官网链接在此奉上:

https://ipython.readthedocs.io/en/stable/whatsnew/version8.html#ipython-8-0

对了,还要提醒一点,如果想用IPython 8.0,你得先把Python升级到3.8以上版本

参考链接:
[1]https://blog.jupyter.org/release-of-ipython-8-0-6e034ff122ef

[2]https://www.oschina.net/news/178236/ipython-8-0-released
[3]https://news.ycombinator.com/item?id=29906774

推荐阅读:

我教你如何读博!

牛逼!轻松高效处理文本数据神器

B站强化学习大结局!

如此神器,得之可得顶会!

兄弟们!神经网络画图,有它不愁啊

太赞了!东北大学朱靖波,肖桐团队开源《机器翻译:统计建模与深度学习方法》

当年毕业答辩!遗憾没有它...

已开源!所有李航老师《统计学习方法》代码实现

这个男人,惊为天人!手推PRML!

它来了!《深度学习》(花书) 数学推导、原理剖析与代码实现

你们心心念念的MIT教授Gilbert Strang线性代数彩板笔记!强烈推荐!

GitHub超过9800star!学习Pytorch,有这一份资源就够了!强推!

你真的懂神经网络?强推一个揭秘神经网络的工具,ANN Visualizer

诸位!看我如何白嫖2020 icassp!

这个时代研究情感分析,是最好也是最坏!

BERT雄霸天下!

玩转Pytorch,搞懂这个教程就可以了,从GAN到词嵌入都有实例

是他,是他,就是他!宝藏博主让你秒懂Transformer、BERT、GPT!

fitlog!复旦邱锡鹏老师组内部调参工具!一个可以节省一篇论文的调参利器

Github开源!查阅arXiv论文新神器,一行代码比较版本差别,我爱了!

开源!数据结构与算法必备的 50 个代码实现

他来了!吴恩达带着2018机器学习入门高清视频,还有习题解答和课程拓展来了!

太赞了!复旦邱锡鹏老师NLP实战code解读开源!

这块酷炫的Python神器!我真的爱了,帮助你深刻理解语言本质!实名推荐!

论文神器!易搜搭

不瞒你说!这可能是世界上最好的线性代数教程

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/126383
 
190 次点击