rlcompleter
— Функция завершения для GNU readline¶
Модуль rlcompleter
определяет функцию завершения, подходящую для модуля
readline
, путём завершения допустимых идентификаторов и ключевых слов
Python.
Когда этот модуль импортируется на платформу Unix с доступным модулем
readline
, автоматически создаётся экземпляр класса Completer
, а
его метод 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)¶ Возвращает stateое завершение для text.
Если вызывается для text, который не включает символ точки (
'.'
), он будет завершён из имён, в настоящее время определенных в__main__
,builtins
и ключевых словах (как определено модулемkeyword
).При вызове имени, разделенного точками, он будет пытаться вычислить что-либо без очевидных побочных эффектов (функции не будут вычисляться, но он может генерировать вызовы
__getattr__()
) до последней части и найти совпадения для остальных с помощью функцииdir()
. Любое исключение, возникшее во время вычисления выражения, перехватывается, заглушается и возвращаетсяNone
.