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