14. Інтерактивне редагування введення та заміна історії

Деякі версії інтерпретатора Python підтримують редагування поточного рядка введення та заміну історії, подібно до можливостей оболонки Korn і оболонки GNU Bash. Це реалізовано за допомогою бібліотеки GNU Readline, яка підтримує різні стилі редагування. Ця бібліотека має власну документацію, яку ми не будемо тут дублювати.

14.1. Доповнення вкладок і редагування історії

Завершення імен змінних та модулів :ref:автоматично вмикається<rlcompleter-config>` під час запуску інтерпретатора, так що клавіша Tab викликає функцію завершення; вона перевіряє імена операторів Python, поточні локальні змінні та доступні імена модулів. Для крапкових виразів, таких як string.a, вона обчислить вираз до останньої '.' та потім запропонує завершення з атрибутів отриманого об’єкта. Зверніть увагу, що це може виконати код, визначений у програмі, якщо об’єкт з методом __getattr__() є частиною виразу. За замовчуванням конфігурація також зберігає вашу історію у файл з ім’ям .python_history у вашому користувацькому каталозі. Історія буде доступна знову під час наступної сесії інтерактивного інтерпретатора.

14.2. Альтернативи інтерактивному інтерпретатору

Ця можливість є величезним кроком вперед порівняно з попередніми версіями інтерпретатора; проте залишилися деякі побажання: було б чудово, якби належний відступ був запропонований у рядках продовження (аналізатор знає, чи потрібен маркер відступу далі). Механізм завершення може використовувати таблицю символів інтерпретатора. Команда для перевірки (або навіть пропозиції) відповідності дужок, лапок тощо також буде корисною.

Одним з альтернативних розширених інтерактивних інтерпретаторів, який існує вже досить давно, є IPython, який включає завершення вкладок, дослідження об’єктів і розширене керування історією. Його також можна ретельно налаштувати та вбудувати в інші програми. Ще одне подібне розширене інтерактивне середовище — bpython.