rlcompleter --- GNU readline 的补全函数¶
æº�代ç �: Lib/rlcompleter.py
rlcompleter 模å�—定义了一个适å�ˆè¢«ä¼ ç»™ readline 模å�—ä¸ set_completer() 的补全函数。
å½“æ¤æ¨¡å�—在具有 readline 模å�—çš„ Unix å¹³å�°ä¸Šè¢«å¯¼å…¥æ—¶ï¼Œä¼šè‡ªåŠ¨åˆ›å»ºä¸€ä¸ª Completer 实例并将其 complete() 方法设为 readline completer。 该方法æ��供了对有效的 Python æ ‡è¯†ç¬¦å’Œå…³é”®å— çš„è¡¥å…¨åŠŸèƒ½ã€‚
示例:
>>> 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 的 交互模� 而设计的。 除� Python 是附带 -S 选项�行的,这个模�总是会被自动地导入并�置 (�� Readline �置)。
在没有 readline 的平å�°, æ¤æ¨¡å�—定义的 Completer ç±»ä»�ç„¶å�¯ä»¥ç”¨äºŽè‡ªå®šä¹‰è¡Œä¸º.
- class rlcompleter.Completer¶
Completer 对象具有以下方法:
- complete(text, state)¶
返回针对 text 的下一个�能的补全项。
当被
readline模å�—è°ƒç”¨æ—¶ï¼Œæ¤æ–¹æ³•将被连ç»è°ƒç”¨å¹¶é™„带state == 0, 1, 2, ...直到该方法返回None。如果指定的 text ä¸�包å�«å�¥ç‚¹å—符 (
'.')ï¼Œå®ƒå°†æ ¹æ�®å½“å‰�__main__,builtinså’Œä¿�留关键å—(定义于keyword模å�—)所定义的å��称进行补全。如果为带有点å�·çš„å��称执行调用,它将å°�试尽é‡�求值直到最å�Žä¸€éƒ¨åˆ†ä¸ºæ¢è€Œäº§ç”Ÿé™„带影å“�(函数ä¸�会被求值,但它å�¯ä»¥ç”Ÿæˆ�对
__getattr__()的调用),并通过dir()函数�匹�剩余部分。 在对表达�求值期间引�的任何异常都会被�获��默处�并返回None。