rlcompleter.md
1> **Источник:** https://python-all.ru/3.4/library/rlcompleter.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 6.8. [`rlcompleter`](https://python-all.ru/3.4/library/rlcompleter.html#module-rlcompleter) – функция автоподполнения для GNU readline89**Исходный код:** [Lib/rlcompleter.py](https://python-all.ru/src/3.4/Lib/rlcompleter.py)1011---1213Модуль [`rlcompleter`](https://python-all.ru/3.4/library/rlcompleter.html#module-rlcompleter) определяет функцию автодополнения, подходящую для модуля [`readline`](https://python-all.ru/3.4/library/readline.html#module-readline), дополняя допустимые идентификаторы и ключевые слова Python.1415Когда этот модуль импортируется на платформе Unix с доступным модулем [`readline`](https://python-all.ru/3.4/library/readline.html#module-readline), автоматически создаётся экземпляр класса `Completer`, и его метод `complete()` устанавливается как функция автодополнения [`readline`](https://python-all.ru/3.4/library/readline.html#module-readline).1617Пример:1819```python20>>> import rlcompleter21>>> import readline22>>> readline.parse_and_bind("tab: complete")23>>> readline. <TAB PRESSED>24readline.__doc__ readline.get_line_buffer( readline.read_init_file(25readline.__file__ readline.insert_text( readline.set_completer(26readline.__name__ readline.parse_and_bind(27>>> readline.28```2930Модуль [`rlcompleter`](https://python-all.ru/3.4/library/rlcompleter.html#module-rlcompleter) предназначен для использования с [*интерактивным режимом*](https://python-all.ru/3.4/tutorial/interpreter.html#tut-interactive) Python. Если Python не запущен с опцией [*-S*](https://python-all.ru/3.4/using/cmdline.html#cmdoption-S), модуль автоматически импортируется и настраивается (см. [*конфигурацию Readline*](https://python-all.ru/3.4/library/site.html#rlcompleter-config)).3132На платформах без [`readline`](https://python-all.ru/3.4/library/readline.html#module-readline) класс `Completer`, определённый в этом модуле, всё ещё может использоваться для пользовательских целей.3334## 6.8.1. Объекты Completer3536Объекты Completer имеют следующий метод:3738#### `Completer.complete(text, state)`3940Возвращает *state*-е завершение для *text*.4142Если вызвана для *text*, не содержащего точку (`'.'`), то будет выполнять автодополнение из имён, определённых в [`__main__`](https://python-all.ru/3.4/library/__main__.html#module-__main__), [`builtins`](https://python-all.ru/3.4/library/builtins.html#module-builtins) и ключевых слов (как определено модулем [`keyword`](https://python-all.ru/3.4/library/keyword.html#module-keyword)).4344Если вызвана для имени с точкой, она попытается вычислить всё без очевидных побочных эффектов (функции не будут вычисляться, но могут генерироваться вызовы [`__getattr__()`](https://python-all.ru/3.4/reference/datamodel.html#object.__getattr__)) до последней части и найти совпадения для остального через функцию [`dir()`](https://python-all.ru/3.4/library/functions.html#dir). Любое исключение, возникшее при вычислении выражения, перехватывается, подавляется и возвращается [`None`](https://python-all.ru/3.4/library/constants.html#None).45