rlcompleter
--- GNU readline 的補全函數(shù)?
源代碼: Lib/rlcompleter.py
rlcompeleter
通過補全有效的 Python 標識符和關鍵字定義了一個適用于 readline
模塊的補全函數(shù)。
當此模塊在具有可用的 readline
模塊的 Unix 平臺被導入, 一個 Completer
實例將被自動創(chuàng)建并且它的 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 的 交互模式 而設計的。 除非 Python 是通過 -S
選項運行, 這個模塊總是自動地被導入且配置 (參見 Readline 配置)。
在沒有 readline
的平臺, 此模塊定義的 Completer
類仍然可以用于自定義行為.
Completer 對象?
Completer 對象具有以下方法:
- Completer.complete(text, state)?
為 text 返回第 state 項補全。
如果指定的 text 不包含句點字符 (
'.'
),它將根據(jù)當前__main__
,builtins
和保留關鍵字(定義于keyword
模塊)所定義的名稱進行補全。如果為帶有句點的名稱執(zhí)行調(diào)用,它將嘗試盡量求值直到最后一部分為止而不產(chǎn)生附帶影響(函數(shù)不會被求值,但它可以生成對
__getattr__()
的調(diào)用),并通過dir()
函數(shù)來匹配剩余部分。 在對表達式求值期間引發(fā)的任何異常都會被捕獲、靜默處理并返回None
。