14. Pengeditan Input Interaktif dan Penggantian Riwayat
*******************************************************

Beberapa versi interpreter Python mendukung pengeditan jalur input
aktual dan penggantian riwayat, mirip dengan fasilitas yang ditemukan
di shell Korn dan shell Bash GNU. Ini diimplementasikan menggunakan
pustaka GNU Readline, yang mendukung berbagai gaya pengeditan. Pustaka
ini memiliki dokumentasi sendiri yang tidak akan kami duplikat di
sini.


14.1. Pelengkapan Tab dan Pengeditan Riwayat
============================================

Penyelesaian nama variabel dan modul adalah diaktifkan secara otomatis
pada startup interpreter sehingga tombol "Tab" memanggil fungsi
pelengkapan; terlihat pada nama pernyataan Python, variabel lokal saat
ini, dan nama modul yang tersedia. Untuk ekspresi putus-putus seperti
"string.a", itu akan mengevaluasi ekspresi hingga akhir "'.'" dan
kemudian menyarankan penyelesaian dari atribut dari objek yang
dihasilkan. Perhatikan bahwa ini dapat mengeksekusi kode yang-
ditentukan-aplikasi jika suatu objek dengan metode "__getattr__()"
menjadi bagian dari ekspresi. Konfigurasi bawaan juga menyimpan
riwayat Anda menjadi berkas bernama ".python_history" di direktori
pengguna Anda. Riwayat akan tersedia lagi saat sesi interpreter
interaktif berikutnya.


14.2. Alternatif untuk Interpreter Interaktif
=============================================

Fasilitas ini merupakan kemajuan yang sangat besar dibandingkan dengan
interpreter versi sebelumnya; namun, ada beberapa keinginan yang
tersisa: Akan lebih baik jika indentasi yang tepat disarankan pada
baris lanjutan (parser tahu jika token indentasi diperlukan
berikutnya). Mekanisme pelengkapan mungkin menggunakan tabel simbol
interpreter. Perintah untuk memeriksa (atau bahkan menyarankan) tanda
kurung, tanda kutip, dll., juga berguna.

Salah satu alternatif interpreter interaktif canggih yang telah ada
selama beberapa waktu adalah IPython, yang menampilkan pelengkapan
tab, eksplorasi objek, dan manajemen riwayat lanjut. Itu juga dapat
sepenuhnya disesuaikan dan tertanam ke dalam aplikasi lain. Lingkungan
interaktif ditingkatkan serupa lainnya adalah bpython.
