6.8. rlcompleter
- GNU readline的完成功能¶
源代码: Lib / rlcompleter.py
rlcompleter
模块通过完成有效的Python标识符和关键字来定义适合readline
模块的完成函数。
当在Unix平台上导入readline
模块时,会自动创建Completer
类的实例及其complete()
方法设置为readline
completer。
例:
>>> 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的interactive mode。除非Python使用-S
选项运行,模块将自动导入和配置(参见Readline configuration)。
在没有readline
的平台上,此模块定义的Completer
类仍可用于自定义目的。
6.8.1.Completer对象¶
Completer对象有以下方法:
Completer.
complete
(text, state)¶为文本返回状态完成。
If called for text that doesn’t include a period character (
'.'
), it will complete from names currently defined in__main__
,builtins
and keywords (as defined by thekeyword
module).如果调用点名称,它将尝试评估任何没有明显副作用(函数不会被评估,但它可以生成调用
__getattr__()
)直到最后一部分,并找到通过dir()
函数匹配其余部分。在表达式求值期间引发的任何异常都被捕获,静默并返回None
。