适用于GNU readline的Python Completion函数

Unix readline模块具有制表符完成机制。要获得这些功能,我们必须使用rlcompleter模块。它可以在python的交互模式下使用。

要使用此模块,我们应该使用-导入它

import rlcompleter

有一个名为Completer类的类-

方法Completer.complete(文本,状态)

此方法用于返回制表符完成输出。如果有“。” 在文本中,那么它将尝试获取该命令的所有相关成员。当没有点“。”时。它将完成文本。

范例程式码

import rlcompleter
import sys
my_completer = rlcompleter.Completer()
phrase_list = ['co', 'sys.m', 'cal']
for phrase in phrase_list:
   print(phrase + ' (TAB): ', end='')
   try:
      for i in range(50):
         terms = my_completer.complete(phrase, i)
         if terms is None:
            break
            print(terms, end='\t')
    except:
       pass
    print()

输出结果

$ python3 example.py
co (TAB): continue    compile(    complex(    copyright(    
sys.m (TAB): sys.maxsize    sys.maxunicode    sys.meta_path    sys.modules    
cal (TAB): callable(