rlcompleter
--- GNU readline の補完機能¶
ソースコード: Lib/rlcompleter.py
The rlcompleter
module defines a completion function suitable to be
passed to set_completer()
in the readline
module.
When this module is imported on a Unix platform with the readline
module
available, an instance of the Completer
class is automatically created
and its complete()
method is set as the
readline completer. The method provides
completion of valid Python identifiers and keywords.
以下はプログラム例です:
>>> 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.
The rlcompleter
module is designed for use with Python's
interactive mode. Unless Python is run with the
-S
option, the module is automatically imported and configured
(see readline の設定).
readline
のないプラットフォームでも、このモジュールで定義される Completer
クラスは独自の目的に使えます。
- class rlcompleter.Completer¶
Completerオブジェクトは以下のメソッドを持っています:
- complete(text, state)¶
Return the next possible completion for text.
When called by the
readline
module, this method is called successively withstate == 0, 1, 2, ...
until the method returnsNone
.もし text がピリオド(
'.'
)を含まない場合、__main__
、builtins
で定義されている名前か、キーワード (keyword
モジュールで定義されている) から補完されます。If called for a dotted name, it will try to evaluate anything without obvious side-effects (functions will not be evaluated, but it can generate calls to
__getattr__()
) up to the last part, and find matches for the rest via thedir()
function. Any exception raised during the evaluation of the expression is caught, silenced andNone
is returned.