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