6.8. rlcompleter --- GNU readline向け補完関数¶
ソースコード: Lib/rlcompleter.py
rlcompleter モジュールではPythonの識別子やキーワードを定義した readline モジュール向けの補完関数を定義しています。
このモジュールが Unixプラットフォームでimportされ、 readline が利用できるときには、 Completer クラスのインスタンスが自動的に作成され、 complete() メソッドが readline 補完に設定されます。
以下はプログラム例です:
>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")
>>> readline. <TAB PRESSED>
readline.__doc__          readline.get_line_buffer(  readline.read_init_file(
readline.__file__         readline.insert_text(      readline.set_completer(
readline.__name__         readline.parse_and_bind(
>>> readline.
rlcompleter モジュールは、 Python の 対話モード と一緒に使用するのを意図して設計されています。Python を -S オプションをつけずに実行している場合、このモジュールが自動的にインポートされ、構成されます (readline の設定 を参照)。
readline のないプラットフォームでも、このモジュールで定義される Completer クラスは独自の目的に使えます。
6.8.1. Completerオブジェクト¶
Completerオブジェクトは以下のメソッドを持っています:
- 
Completer.complete(text, state)¶
- text の state 番目の補完候補を返します。 - もし text がピリオド( - '.')を含まない場合、- __main__、- builtinsで定義されている名前か、キーワード (- keywordモジュールで定義されている) から補完されます。- ピリオドを含む名前の場合、副作用を出さずに名前を最後まで評価しようとします(関数を明示的に呼び出しはしませんが、 - __getattr__()を呼んでしまうことはあります)そして、- dir()関数でマッチする語を見つけます。式を評価中に発生した全ての例外は補足して無視され、- Noneを返します。
