Python第十四課14. 交互式編輯和編輯歷史

某些版本的 Python 解釋器支持編輯當前輸入行和編輯歷史記錄,類似 Korn shell 和 GNU Bash shell 的功能 。這個功能使用了 GNU Readline 來實現,一個支持多種編輯方式的庫。這個庫有它自己的文檔,在這裡我們就不重複說明了。

14.1. Tab 補全和編輯歷史¶

在解釋器啟動的時候,補全變量和模塊名的功能將 自動打開,以便在按下 Tab 鍵的時候調用補全函數。它會查看 Python 語句名稱,當前局部變量和可用的模塊名稱。處理像 string.a 的表達式,它會求值在最後一個 '.' 之前的表達式,接著根據求值結果對象的屬性給出補全建議。如果擁有 __getattr__() 方法的對象是表達式的一部分,注意這可能會執行程序定義的代碼。默認配置下會把編輯歷史記錄保存在用戶目錄下名為 .python_history 的文件。在下一次 Python 解釋器會話期間,編輯歷史記錄仍舊可用。

14.2. 默認交互式解釋器的替代品¶

Python 解釋器與早期版本的相比,向前邁進了一大步;無論怎樣,還有些希望的功能:如果能在編輯連續行時建議縮進(解析器知道接下來是否需要縮進符號),那將很棒。補全機制可以使用解釋器的符號表。有命令去檢查(甚至建議)括號,引號以及其他符號是否匹配。

一個可選的增強型交互式解釋器是 IPython,它已經存在了有一段時間,它具有 tab 補全,探索對象和高級歷史記錄管理功能。它還可以徹底定製並嵌入到其他應用程序中。另一個相似的增強型交互式環境是 bpython。



分享到:


相關文章: