You are here:  Home » Python » rlcompleter – GNU readline 的补全函数(17) – Python语言(必读进阶学习教程)(参考资料)

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 的 交互模式。除非使用该 -S选项运行 Python,否则模块会自动导入和配置(请参阅Readline 配置)。

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

完成者对象

完成者对象具有以下方法:

Completer.complete(textstate)
返回text的状态完成。

如果调用不包含句点字符 ( ) 的文本'.',它将从当前定义的名称__main__builtins关键字(由keyword模块定义)完成。

如果调用一个带点的名称,它将尝试评估任何没有明显副作用的东西(不会评估函数,但它可以生成对 的调用 )直到最后一部分,并通过函数__getattr__()找到其余部分的匹配 项。dir()在表达式求值期间引发的任何异常都会被捕获、静音并None返回。