Содержание страницы
14. Интерактивное редактирование ввода и подстановка истории¶Interactive Input Editing and History Substitution
Некоторые версии интерпретатора Python поддерживают редактирование текущей строки ввода и подстановку истории, подобно тому, как это реализовано в оболочках Korn и GNU Bash. Эта возможность реализована с помощью библиотеки GNU Readline, которая поддерживает различные стили редактирования. У этой библиотеки есть собственная документация, которую мы не будем здесь дублировать.
14.1. Автодополнение по табуляции и редактирование истории¶Tab Completion and History Editing
Автодополнение имён переменных и модулей автоматически включается при запуске интерпретатора, поэтому клавиша Tab вызывает функцию дополнения; она просматривает имена операторов Python, текущие локальные переменные и доступные имена модулей. Для выражений с точкой, таких как string.a, оно вычисляет выражение до последней точки '.', а затем предлагает варианты из атрибутов результирующего объекта. Обратите внимание, что это может выполнить определяемый приложением код, если объект с методом __getattr__() является частью выражения. Конфигурация по умолчанию также сохраняет вашу историю в файл с именем .python_history в вашем домашнем каталоге. История будет доступна снова во время следующего сеанса интерактивного интерпретатора .
14.2. Альтернативы интерактивному интерпретатору¶Alternatives to the Interactive Interpreter
Эта возможность является огромным шагом вперед по сравнению с более ранними версиями интерпретатора; однако остаются некоторые пожелания: было бы хорошо, если бы правильный отступ предлагался на строках продолжения (парсер знает, требуется ли следующий токен отступа). Механизм автодополнения мог бы использовать таблицу символов интерпретатора. Также была бы полезна команда для проверки (или даже предложения) соответствующих скобок, кавычек и т.д.
Одной из альтернатив с расширенными возможностями, которая существует уже довольно давно, является IPython. Он предлагает автодополнение по табуляции, исследование объектов и расширенное управление историей. Его также можно тщательно настраивать и встраивать в другие приложения. Другая подобная среда с расширенными возможностями – bpython.