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.
textcomplete(
state,
)
- 返回text的状态完成。
如果调用不包含句点字符 ( ) 的文本
'.'
,它将从当前定义的名称__main__
和builtins
关键字(由keyword
模块定义)完成。如果调用一个带点的名称,它将尝试评估任何没有明显副作用的东西(不会评估函数,但它可以生成对 的调用 )直到最后一部分,并通过函数
__getattr__()
找到其余部分的匹配 项。dir()
在表达式求值期间引发的任何异常都会被捕获、静音并None
返回。