руководствоPython
August 12, 2020

Интерактивное редактирование ввода и подстановка истории

Некоторые версии интерпретатора Python поддерживают редактирование текущей строки ввода и подстановку истории, аналогично средствам, имеющимся в оболочке Korn и оболочке GNU Bash. Это реализовано с помощью библиотеки GNU Readline , которая поддерживает различные стили редактирования. У этой библиотеки есть собственная документация, дублировать которую мы не будем.

Заполнение вкладок и редактирование истории

Завершение имен переменных и модулей автоматически включается при запуске интерпретатора, так что Tab клавиша вызывает функцию завершения; он просматривает имена операторов Python, текущие локальные переменные и доступные имена модулей. Для выражений, разделенных точками, таких как string.a, он будет оценивать выражение до последней точки, '.'а затем предлагать варианты завершения на основе атрибутов полученного объекта. Обратите внимание, что это может выполнить код, определенный приложением, если объект с __getattr__() методом является частью выражения. Конфигурация по умолчанию также сохраняет вашу историю в файл с именем .python_history в вашем пользовательском каталоге. История снова будет доступна во время следующего сеанса интерактивного интерпретатора.

Альтернатива интерактивного интерпретатора

Это средство - огромный шаг вперед по сравнению с более ранними версиями интерпретатора; тем не менее, некоторые пожелания остаются: было бы неплохо, если бы в строках продолжения был предложен правильный отступ (синтаксический анализатор знает, требуется ли следующий маркер отступа). Механизм завершения может использовать таблицу символов интерпретатора. Также будет полезна команда для проверки (или даже предложения) соответствия круглых скобок, кавычек и т. Д.

Один из альтернативных расширенных интерактивных интерпретаторов, который существует уже довольно давно, - это IPython , который поддерживает завершение по табуляции, исследование объектов и расширенное управление историей. Его также можно полностью настроить и встроить в другие приложения. Еще одна аналогичная расширенная интерактивная среда - bpython . Также вы можете использовать Jupyter notebook.

Заключение

Пост создан для тг канала @coolcoders