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