rlcompleter --- GNU readline 的补全函数¶

�代�: Lib/rlcompleter.py


rlcompleter 模�定义了一个适�被传给 readline 模�中 set_completer() 的补全函数。

当此模�在具有 readline 模�的 Unix 平�上被导入时,会自动创建一个 Completer 实例并将其 complete() 方法设为 readline completer。 该方法�供了对有效的 Python 标识符和关键字 的补全功能。

示例:

>>> 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 类�然�以用于自定义行为.

class rlcompleter.Completer¶

Completer 对象具有以下方法:

complete(text, state)¶

返回针对 text 的下一个�能的补全项。

当被 readline 模�调用时,此方法将被连续调用并附带 state == 0, 1, 2, ... 直到该方法返回 None。

如果指定的 text �包��点字符 ('.'),它将根�当� __main__, builtins 和�留关键字(定义于 keyword 模�)所定义的�称进行补全。

如果为带有点�的�称执行调用,它将�试尽�求值直到最�一部分为止而产生附带影�(函数�会被求值,但它�以生�对 __getattr__() 的调用),并通过 dir() 函数�匹�剩余部分。 在对表达�求值期间引�的任何异常都会被�获��默处�并返回 None。