IPython(interactivepython)是一个用于多种编程语言交互计算的命令 shell,最初是为 Python 编程语言开发的,它提供了内省、富媒体、shell 语法、制表符完成和历史记录。
酝酿了 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 模式中显示。