14.14。 インタラクティブな入力編集と履歴置換
Pythonインタープリターの一部のバージョンは、KornシェルおよびGNU Bashシェルにある機能と同様に、現在の入力行の編集と履歴の置換をサポートしています。 これは、さまざまなスタイルの編集をサポートする GNU Readline ライブラリを使用して実装されます。 このライブラリには独自のドキュメントがありますが、ここでは複製しません。
14.1。 タブ補完と履歴編集
変数名とモジュール名の補完は、インタープリターの起動時に自動的に有効化されるため、 Tab キーは補完関数を呼び出します。 Pythonステートメント名、現在のローカル変数、および使用可能なモジュール名を調べます。 string.a
などの点線の式の場合、最後の'.'
まで式を評価し、結果のオブジェクトの属性から補完を提案します。 __getattr__()
メソッドを持つオブジェクトが式の一部である場合、これによりアプリケーション定義のコードが実行される可能性があることに注意してください。 デフォルト設定では、履歴がユーザーディレクトリの.python_history
という名前のファイルにも保存されます。 履歴は、次のインタラクティブな通訳セッション中に再び利用できるようになります。
14.2。 インタラクティブインタプリタの代替
この機能は、以前のバージョンのインタープリターと比較して、大きな前進です。 ただし、いくつかの要望が残っています。継続行に適切なインデントが提案されていると便利です(パーサーは、次にインデントトークンが必要かどうかを認識しています)。 完了メカニズムは、インタプリタのシンボルテーブルを使用する場合があります。 一致する括弧や引用符などをチェックする(または提案する)コマンドも役立ちます。
かなり前から存在している代替の拡張インタラクティブインタープリターの1つは、 IPython です。これは、タブ補完、オブジェクト探索、および高度な履歴管理を備えています。 また、完全にカスタマイズして、他のアプリケーションに組み込むこともできます。 もう1つの同様の拡張インタラクティブ環境は、 bpython です。