IPython 8.0 大版本更新,支持代碼自動(dòng)補(bǔ)全
醞釀了3年多,IPython 8.0終于來了。
現(xiàn)在,用上最新版本,你不僅能在命令行里使用Black重新格式化代碼,還能獲得更好的自動(dòng)代碼補(bǔ)全和Debug體驗(yàn)。
更多詳情,咱們接著往下看。
優(yōu)化報(bào)錯(cuò)
在8.0版本之前,如果代碼出錯(cuò),IPython的錯(cuò)誤回溯會(huì)顯示一個(gè)哈希值,用于編譯Python AST,就像這樣:
而現(xiàn)在,錯(cuò)誤回溯已經(jīng)正確格式化,能夠顯示出bug所在的具體單元格編號(hào)。
另外,IPython 8.0還集成了stack_data,這個(gè)包提供了更智能的追蹤信息,能夠突出顯示發(fā)生錯(cuò)誤的AST節(jié)點(diǎn),幫助快速定位bug。
比如對(duì)于這樣一段代碼:
調(diào)用bar(),就能獲得一個(gè)IndexError,IPython 8.0會(huì)告訴你索引錯(cuò)誤具體發(fā)生在哪里。
注:在終端和notebook中,用^標(biāo)記的位置將顯示為高亮。
還有一個(gè)對(duì)生產(chǎn)力有較大影響的改進(jìn),就是在錯(cuò)誤回溯的文件名后面添加冒號(hào)和行號(hào)。
許多終端和編輯器都允許在使用這種語(yǔ)法時(shí),直接跳轉(zhuǎn)到相關(guān)文件/行。
自動(dòng)代碼補(bǔ)全建議
除了更好的Debug體驗(yàn),如果你很喜歡Ptpython里的代碼自動(dòng)補(bǔ)全功能,那么現(xiàn)在在IPython 8.0里你也能用上了。
通過ctrl-f,或ctrl-e,或按下右箭頭,就可以接受這些建議。
alt-f快捷鍵則可以只接受建議的第一個(gè)單詞。
目前,自動(dòng)建議只能在emacs或vi模式中顯示。
使用“?”和”??”查看對(duì)象信息
在IPDB中,現(xiàn)在可以用“?”和“??”來顯示對(duì)象信息,在使用IPython提示符時(shí)也一樣:
在CLI中用black自動(dòng)格式化
如果black被安裝在與IPython相同的環(huán)境中,那么現(xiàn)在,終端IPython將在默認(rèn)情況下盡可能重新格式化命令行(CLI)中的代碼。
當(dāng)然,你也可以用 —TerminalInteractiveShell.autoformatter=None 來禁用該選項(xiàng)。
歷史范圍全局功能
此前,在使用%history時(shí),用戶可以指定session和行:
或是使用全局模式:
但在8.0以前,這兩種模式不能兼得。如果用戶同時(shí)指定了2種模式,IPython將應(yīng)用全局模式(對(duì)所有歷史記錄進(jìn)行全局化)并忽略指定范圍。
現(xiàn)在,此功能得到加強(qiáng),如果用戶同時(shí)指定了范圍和glob模式,則glob模式將應(yīng)用于指定的歷史范圍。
如果你還想了解更多信息,官網(wǎng)鏈接在此奉上:
??https://ipython.readthedocs.io/en/stable/whatsnew/version8.html#ipython-8-0 ??
對(duì)了,還要提醒一點(diǎn),如果想用IPython 8.0,你得先把Python升級(jí)到3.8以上版本。