rlcompleter — GNU readline 的完成函数

源代码: Lib/rlcompleter.py


rlcompleter模块pass完成有效的 Python 标识符和关键字来定义适用于readline模块的完成Function。

在具有readline模块可用的 Unix 平台上导入此模块时,会自动创建Completer类的实例,并将其complete()方法设置为readline completeer。

Example:

>>> 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选项运行 Python,否则将自动导入和配置模块(请参见Readline configuration)。

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

Completer Objects

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

  • Completer. complete(* text state *)
    • 返回* state state *完成。

如果要求不包含句点字符('.')的* text *,它将以当前在mainbuiltins和关键字(由keyword模块定义)中定义的名称完成。

如果要求使用点名,它将try评估没有明显副作用(不会评估Function,但可以生成对getattr()的调用)的任何内容,直到最后一部分为止,并passdir()函数查找其余部分的匹配项。表达式求值期间引发的任何异常都将被捕获,沉默并返回None