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