醞釀了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模式將套用於指定的歷史範圍。
如果你還想了解更多信息,官網鏈接在此奉上:
#//m.sbmmt.com/link/003dd617c12d444ff9c80f717c3fa982
#對了,還要提醒一點,如果想用IPython 8.0,你得先把Python升級到3.8以上版本。
以上是IPython 8.0 大版本更新,支援程式碼自動補全的詳細內容。更多資訊請關注PHP中文網其他相關文章!