rlcompleter ---GNU读线完成功能

源代码: Lib/rlcompleter.py


这个 rlcompleter 模块定义了一个适合 readline 通过完成有效的python标识符和关键字进行模块化。

当在UNIX平台上导入此模块时, 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的 interactive mode . 除非用 -S 选项,模块将自动导入和配置(请参见 读线配置

在没有的平台上 readline , the Completer 该模块定义的类仍然可以用于自定义目的。

完成对象

Completer对象具有以下方法:

Completer.complete(text, state)

返回 state 第次完成 text .

如果要求 text 不包括句号字符 ('.' ,它将根据当前在中定义的名称完成。 __main__builtins 和关键字(由 keyword 模块)。

如果调用点式名称,它将尝试评估没有明显副作用的任何内容(函数不会被评估,但它可以生成对 __getattr__() )到最后一部分,通过 dir() 功能。在表达式的计算过程中引发的任何异常都将被捕获、沉默和 None 返回。