有些版本的 Python 解釋器支持輸入行編輯和歷史回溯,類似 Korn shell 和 GNU bash shell 的功能。這是通過?GNU Readline?庫實現(xiàn)的。它支持 Emacs 風(fēng)格和 vi 風(fēng)格的編輯。這個庫有它自己的文檔,在此不重復(fù)了。
自動完成變量和模塊名在解釋器啟動時自動啟用,這樣Tab鍵調(diào)用完成功能;它著眼于 Python 語句的命名,當(dāng)前的局部變量,有效的模塊名。對于類似 string.a 這樣的文件名,它會解析為 '.' 相關(guān)的表達式,從返回的結(jié)果對象中獲取屬性,以提供完成建議。需要注意的是,如果一個對象__getattr__()方法是此表達式的一部分,這可能會執(zhí)行應(yīng)用程序定義代碼。默認的配置還可以保存你的歷史到 python_history 用戶目錄中,在下次交互式解釋器會話期間,歷史能夠再次被使用。
跟早先版本的解釋器比,現(xiàn)在已經(jīng)有了很大的進步。不過,還是有些期待沒有完成:它應(yīng)該在后繼行中優(yōu)美的提供縮進(解釋器知道下一行是否需要縮進)建議。完成機制可以使用解釋器的符號表。命名檢查(或進一步建議)匹配括號、引號等等。
另有一個強化交互式解釋器已經(jīng)存在一段時間了,它就是?IPython,它支持 tab 完成,對象瀏覽和高級歷史管理。它也可以完全定制或嵌入到其它應(yīng)用程序中。另一個類似的強化交互環(huán)境是 bpython?。