rlcompleter
--- GNU readline 的補全函式¶The rlcompleter
module defines a completion function suitable to be
passed to set_completer()
in the readline
module.
When this module is imported on a Unix platform with the readline
module
available, an instance of the Completer
class is automatically created
and its complete()
method is set as the
readline completer. The method provides
completion of valid Python identifiers and keywords.
範例:
>>> 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.
The rlcompleter
module is designed for use with Python's
interactive mode. Unless Python is run with the
-S
option, the module is automatically imported and configured
(see Readline configuration).
On platforms without readline
, the Completer
class defined by
this module can still be used for custom purposes.
Completer objects have the following method:
Return the next possible completion for text.
When called by the readline
module, this method is called
successively with state == 0, 1, 2, ...
until the method returns
None
.
If called for text that doesn't include a period character ('.'
), it will
complete from names currently defined in __main__
, builtins
and
keywords (as defined by the keyword
module).
If called for a dotted name, it will try to evaluate anything without obvious
side-effects (functions will not be evaluated, but it can generate calls to
__getattr__()
) up to the last part, and find matches for the
rest via the dir()
function. Any exception raised during the
evaluation of the expression is caught, silenced and None
is
returned.