14. Інтерактивне редагування введення та заміна історії¶
Деякі версії інтерпретатора Python підтримують редагування поточного рядка введення та заміну історії, подібно до можливостей оболонки Korn і оболонки GNU Bash. Це реалізовано за допомогою бібліотеки GNU Readline, яка підтримує різні стилі редагування. Ця бібліотека має власну документацію, яку ми не будемо тут дублювати.
14.1. Доповнення вкладок і редагування історії¶
Completion of variable and module names is
automatically enabled at interpreter startup so
that the Tab key invokes the completion function; it looks at
Python statement names, the current local variables, and the available
module names. For dotted expressions such as string.a
, it will evaluate
the expression up to the final '.'
and then suggest completions from
the attributes of the resulting object. Note that this may execute
application-defined code if an object with a __getattr__()
method
is part of the expression. The default configuration also saves your
history into a file named .python_history
in your user directory.
The history will be available again during the next interactive interpreter
session.
14.2. Альтернативи інтерактивному інтерпретатору¶
Ця можливість є величезним кроком вперед порівняно з попередніми версіями інтерпретатора; проте залишилися деякі побажання: було б чудово, якби належний відступ був запропонований у рядках продовження (аналізатор знає, чи потрібен маркер відступу далі). Механізм завершення може використовувати таблицю символів інтерпретатора. Команда для перевірки (або навіть пропозиції) відповідності дужок, лапок тощо також буде корисною.
Одним з альтернативних розширених інтерактивних інтерпретаторів, який існує вже досить давно, є IPython, який включає завершення вкладок, дослідження об’єктів і розширене керування історією. Його також можна ретельно налаштувати та вбудувати в інші програми. Ще одне подібне розширене інтерактивне середовище — bpython.