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