본문 바로가기

python tutorial - 14 대화형 입력 편집 및 히스토리 치환

https://docs.python.org/ja/3/tutorial/interactive.html

python tutorial part 14

대화형 입력 편집 및 히스토리 치환

일부 파이썬 인터프리터 버전은 Korn 셸 및 GNU Bash과 유사하게 현재 입력 줄 편집 및 히스토리 치환을 지원합니다. 

다양한 스타일의 편집을 지원하는 GNU Readline 라이브러리를 사용하여 구현



いくつかのバージョンの Python インタプリタでは、Korn シェルや GNU Bash シェルに見られる機能に似た、現在の入力行に対する編集機能や履歴置換機能をサポートしています。この機能は様々な編集スタイルをサポートしている、GNU Readline ライブラリを使って実装されています。このライブラリには独自のドキュメントがあり、ここでそれを繰り返すつもりはありません。



14.1. 탭 완성 및 히스토리 편집 タブ補完と履歴編集


변수와 모듈 이름의 완성은 인터프리터 시작 시 자동으로 활성화 되어서 Tab 키가 완료 기능을 호출합니다; 

파이썬 명령문 이름, 현재 지역 변수 및 사용 가능한 모듈 이름을 찾습니다.

string.a와 같은 점으로 구분된 표현식 : 마지막 '.' 까지 값을 구한 다음,  완성을 제안합니다.

 __getattr__() 메서드를 가진 객체가 표현식의 일부면 응용 프로그램이 정의한 코드를 실행할 수 있음에 주의해야 합니다. 


기본 설정은 사용자 디렉터리에 .python_history 라는 파일로 히스토리를 저장합니다. 

다음 대화형 인터프리터 세션에서 히스토리를 다시 사용할 수 있습니다.


変数とモジュール名の補完はインタプリタの起動時に 自動的に有効化されます 。 従って Tabキーは補完機能を呼び出し、Python の文の名前、現在のローカル変数、および利用可能なモジュール名を検索します。

string.a のようなドットで区切られた式については、最後の '.'までの式を評価し、結果として得られたオブジェクトの属性から補完候補を示します。

 __getattr__() メソッドを持ったオブジェクトが式に含まれている場合、 __getattr__() がアプリケーション定義のコードを実行するかもしれないので注意してください。

デフォルトの設定ではあなたのユーザーディレクトリの .python_history という名前のファイルに履歴を保存します。

 履歴は次の対話的なインタプリタのセッションで再び利用することができます。



14.2. 대화형 인터프리터 대안 対話的インタープリタの代替


 몇 가지 희망 사항

이어지는 줄에서 적절한 들여쓰기가 제안된다면 좋을 것입니다 (파서는 다음에 들여쓰기 토큰이 필요한지 알고 있습니다). 

완료 메커니즘은 인터프리터의 심볼 테이블을 사용할 수 있습니다. 

매치되는 괄호, 따옴표 등을 검사 (또는 제안)하는 명령도 유용할 것입니다.


いくつかの要望が残されています。

例えば、行を継続するときに正しいインデントが提示されたら快適でしょう (パーサは次の行でインデントトークンが必要かどうかを知っています)。

補完機構がインタープリタのシンボルテーブルを使ってもよいかもしれません。

括弧やクォートなどの対応をチェックする (あるいは指示する) コマンドも有用でしょう。



개선된 대화형 인터프리터는 IPython 

탭 완성, 객체 탐색 및 고급 히스토리 관리 기능을 갖추고 있습니다. 

철저하게 커스터마이즈해서 다른 응용 프로그램에 내장할 수 있습니다. 

비슷한 또 다른 개선된 대화형 환경은 bpython 입니다.


より優れた対話的インタープリタの代替の一つに IPython があります。

このインタープリタは、様々なところで使われていて、タブ補完、オブジェクト探索や先進的な履歴管理といった機能を持っています。

他のアプリケーションにカスタマイズされたり、組込まれこともあります。
別の優れたインタラクティブ環境としては bpython があります。