16.9. rlcompleter — GNU readlineの完了関数—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/rlcompleter
移動先:案内検索

16.9。 rlcompleter —GNUreadlineの完了関数

ソースコード: :source: `Lib / rlcompleter.py`



rlcompleter モジュールは、有効なPython識別子とキーワードを補完することにより、 readline モジュールに適した補完関数を定義します。

このモジュールが readline モジュールが使用可能なUnixプラットフォームにインポートされると、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のインタラクティブモードで使用するように設計されています。 ユーザーは、初期化ファイル( PYTHONSTARTUP 環境変数で識別)に次の行を追加して、 Tab を自動的に完了することができます。

try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

readline のないプラットフォームでも、このモジュールで定義されているCompleterクラスをカスタム目的で使用できます。

16.9.1。 コンプリーターオブジェクト

コンプリーターオブジェクトには、次のメソッドがあります。

Completer.complete(text, state)

textstate 番目の完了を返します。

ピリオド文字を含まないテキスト'.')が呼び出された場合、 __ main ____ builtin __ で現在定義されている名前から補完されます。およびキーワード(キーワードモジュールで定義されているとおり)。

点線の名前が必要な場合は、明らかな副作用なしに(関数は評価されませんが、__getattr__()への呼び出しを生成できます)、最後の部分まで評価を試み、残りの部分に一致するものを見つけます。 dir()関数を介して。 式の評価中に発生した例外はすべてキャッチされ、サイレンシングされ、 None が返されます。