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