"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"
      。
