On this page
16.9. rlcompleter — GNU readline 的完成Function
源代码: 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 的交互模式一起使用。用户可以将以下几行添加到他或她的初始化文件(由 PYTHONSTARTUP环境变量标识)中,以实现 Tab 自动完成:
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
在没有readline的平台上,此模块定义的Completer
类仍可用于自定义目的。
16.9.1. 完成对象
完成器对象具有以下方法:
Completer.
complete
(* text , state *)- 返回* state 的 state *完成。
如果要求不包含句点字符('.'
)的* text *,它将以当前在main,builtin和关键字(由keyword模块定义)中定义的名称完成。
如果要求使用点名,它将try评估没有明显副作用(不会评估Function,但可以生成对getattr()的调用)的任何内容,直到最后一部分,然后passdir()函数查找其余部分的匹配项。表达式求值期间引发的任何异常都将被捕获,沉默并返回None。