16.9. rlcompleter — GNU readline 的完成函数 — Python 文档
来自菜鸟教程
Python/docs/2.7/library/rlcompleter
16.9. 完成者 — GNU readline 的补全函数
源代码: :source:`Lib/rlcompleter.py`
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 的交互模式。 用户可以将以下几行添加到他或她的初始化文件(由 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 对象具有以下方法:
- Completer.complete(text, state)
为 text 返回第 state 个完成。
如果调用不包含句点字符 (
'.'
) 的 text,它将从当前在 __main__, __builtin__ 中定义的名称完成和关键字(由 keyword 模块定义)。如果调用带点名称,它将尝试评估任何没有明显副作用的东西(不会评估函数,但它可以生成对
__getattr__()
的调用)直到最后一部分,并为其余部分找到匹配项通过 dir() 函数。 在表达式求值过程中引发的任何异常都会被捕获、静音并返回 None。