IPython 8.0 大版本更新,支持代码自动补全
来源:量子位 | 公众号 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
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
点阅读原文,看200个Python案例!