鱼羊 发自 凹非寺
量子位 | 公众号 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

IPython 8.0大版本更新:Debug报错提示更清晰,加入自动代码补全相关推荐

  1. 安卓7.0以上版本更新apk报错

    由于项目需求,项目组的老代码需要推翻重写,现以7.0系统基础上,安装apk时崩溃了,异常: FATAL EXCEPTION: main                                 ...

  2. VS code 自动报错提示

    自动报错提示,在写代码的时候实时监测,不用等到编译的时候才知道哪里错了. 打开方法: 按住 , 搜索框输入:启用错误下划线,或者Enable Error Squiggles 点击或回车启用就OK啦. ...

  3. STM32 学习笔记 -- Keil5使用Debug报错之Encountered an improper argument

    Keil5使用Debug报错之Encountered an improper argument 分类专栏: 软件问题 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...

  4. jmeter4.0 执行jmeter_server.bat报错

    Jmeter分布式执行 1. ------------------------------- Jmeter4.0  执行jmeter_server.bat   报错,是由于4.0要手工生成密钥 bin ...

  5. django2.0集成xadmin0.6报错集锦

    django2.0集成xadmin0.6报错集锦 1.django2.0把from django.core.urlresolvers修改成了django.urls 报错如下: 1 2 3   File ...

  6. Goland DEBUG报错(could not launch process: decoding dwarf section info at offset 0x0: too short)

    问题: 升级GO版本到1.13.4后发现Goland(版本:goland 2017)的Debug报错,如下:could not launch process: decoding dwarf secti ...

  7. Mysql8.0.16 连接包报错解决方法

    Mysql8.0.16 连接包报错解决方法 Mysql8.0 .16连接包报错: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized o ...

  8. ccs5.5 Debug报错

    CCS5.5报错问题记录 Debug报错 解决办法 Debug报错 报错:Source lookup: unable to restore CPU specific source container ...

  9. mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements ...

最新文章

  1. 此三层非彼三层——MVCamp;UBD
  2. springboot开启jms服务监控jvm运行情况
  3. Linux下tomcat无法启动/启动后无法用过127.0.0.1:8080访问解决方案
  4. group by 分组函数 的用法
  5. L3-003. 社交集群-PAT团体程序设计天梯赛GPLT(并查集)
  6. javascript使用栈结构将中缀表达式转换为后缀表达式并计算值
  7. css background背景拉伸
  8. oracle宿舍管理系统实训报告,学生宿舍管理系统_开题报告
  9. C语言学习-翁凯(第三章笔记)
  10. 现场总线技术笔记——2、网络结构(7层结构、互联设备)
  11. 微信电子驾驶证怎么查询
  12. stm32专题二十五:基本定时器原理
  13. Django搭建个人博客Blog-Day05
  14. Simditor固定高度,禁止拉伸,开启滚动条效果
  15. Oracle 监听端口被占用,别的端口也提示占用
  16. 光伏电站的系统组成及工作原理
  17. stm32山外虚拟示波器笔记
  18. 关于SSD 4K对齐
  19. 李开复讲述离开谷歌后的生活
  20. MAC Word 运行时错误“53“:文件未找到:/ Library/ Application Support/ Adobe/....或删除Acrobat插件

热门文章

  1. vue 报错unknown custom element解决方法
  2. 解决Canvas.toDataURL 图片跨域问题
  3. Google Maps Android API V2的使用及问题解决
  4. 如何在python中找到两个日期时间对象之间的时差?
  5. 如何删除UITableView中的空单元格? [重复]
  6. 如何折叠Visual Studio Code for Windows中的代码部分?
  7. 什么是Python的var_dump()的Python等价物? [重复]
  8. 如何将现有的非空目录转换为Git工作目录并将文件推送到远程存储库
  9. 你最喜欢的“程序员”卡通是什么?
  10. 忘记Mysql的root密码怎么办