社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python极客专栏 • 2 年前 • 304 次点击  


来源:量子位 | 公众号 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极客专栏

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