Интерактивное редактирование ввода и подстановка из истории
Некоторые версии интерпретатора Python поддерживают редактирование текущей строки ввода и подстановку из истории, подобно возможностям, имеющимся в оболочках Korn shell и GNU Bash. Это реализовано с помощью библиотеки GNU Readline, которая поддерживает различные стили редактирования. У этой библиотеки есть собственная документация, которую мы не будем здесь дублировать.
14.1. Автодополнение и редактирование истории
Автодополнение имён переменных и модулей включается автоматически при запуске интерпретатора, поэтому клавиша Tab вызывает функцию автодополнения; она проверяет имена операторов Python, текущие локальные переменные и доступные имена модулей. Для выражений с точками, таких как string.a, она вычисляет выражение до последнего '.', а затем предлагает варианты автодополнения среди атрибутов полученного объекта. Обратите внимание, что это может привести к выполнению кода, определённого приложением, если в выражении используется объект с методом __getattr__(). Конфигурация по умолчанию также сохраняет историю в файл с именем .python_history в вашем пользовательском каталоге. История будет доступна при следующем интерактивном сеансе интерпретатора.
14.2. Альтернативы интерактивному интерпретатору
Эта возможность — огромный шаг вперёд по сравнению с предыдущими версиями интерпретатора; однако некоторые пожелания остаются невыполненными: было бы удобно, если бы при переходе на новую строку предлагались правильные отступы (парсер знает, нужен ли следующим токеном INDENT). Механизм автодополнения мог бы использовать таблицу символов интерпретатора. Также была бы полезна команда для проверки (или даже предложения) парных скобок, кавычек и т. д.
Одной из альтернативных усовершенствованных интерактивных оболочек, существующей уже довольно давно, является IPython, которая поддерживает автодополнение по клавише Tab, исследование объектов и расширенное управление историей. Её также можно тщательно настраивать и встраивать в другие приложения. Ещё одна похожая усовершенствованная интерактивная среда — bpython.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/tutorial/interactive.html