rlcompleter
— Функция завершения для GNU readline¶
Исходный код: Lib/rlcompleter.py
Модуль rlcompleter
определяет функцию завершения, подходящую для модуля
readline
, путем заполнения допустимых идентификаторов Python и ключевых слов.
Когда модуль импортируется в платформе Unix с доступным модулем
readline
, автоматически создается сущность класса Completer
, и его метод
complete()
устанавливается как readline
completer.
Пример:
>>> 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
является возвращенный.