14. Chỉnh sửa đầu vào tương tác và thay thế lịch sử¶
Một số phiên bản của trình thông dịch Python hỗ trợ chỉnh sửa dòng đầu vào hiện tại và thay thế lịch sử, tương tự như các tiện ích có trong shell Korn và shell Bash GNU. Điều này được thực hiện bằng thư viện GNU Readline, hỗ trợ nhiều kiểu chỉnh sửa khác nhau. Thư viện này có tài liệu riêng mà chúng tôi sẽ không sao chép ở đây.
14.1. Hoàn thành tab và chỉnh sửa lịch sử¶
Việc hoàn thành tên biến và mô-đun là automatically enabled khi khởi động trình thông dịch để phím Tab gọi hàm hoàn thành; nó xem xét tên câu lệnh Python, các biến cục bộ hiện tại và tên mô-đun có sẵn. Đối với các biểu thức có dấu chấm chẳng hạn như string.a, nó sẽ đánh giá biểu thức cho đến '.' cuối cùng và sau đó đề xuất các phần hoàn thành từ các thuộc tính của đối tượng kết quả. Lưu ý rằng điều này có thể thực thi mã do ứng dụng xác định nếu một đối tượng có phương thức __getattr__() là một phần của biểu thức. Cấu hình mặc định cũng lưu lịch sử của bạn vào một tệp có tên .python_history trong thư mục người dùng của bạn. Lịch sử sẽ có sẵn trong phiên thông dịch tương tác tiếp theo.
14.2. Các lựa chọn thay thế cho Phiên dịch tương tác¶
Cơ sở này là một bước tiến vượt bậc so với các phiên bản phiên dịch trước đó; tuy nhiên, vẫn còn một số mong muốn: Sẽ thật tuyệt nếu thụt lề thích hợp được đề xuất trên các dòng tiếp theo (trình phân tích cú pháp biết liệu tiếp theo có cần mã thông báo INDENT hay không). Cơ chế hoàn thiện có thể sử dụng bảng ký hiệu của trình thông dịch. Một lệnh để kiểm tra (hoặc thậm chí đề xuất) các dấu ngoặc đơn, dấu ngoặc kép, v.v. phù hợp cũng sẽ hữu ích.
Một trình thông dịch tương tác nâng cao thay thế đã có từ khá lâu là IPython, có tính năng hoàn thành tab, khám phá đối tượng và quản lý lịch sử nâng cao. Nó cũng có thể được tùy chỉnh kỹ lưỡng và nhúng vào các ứng dụng khác. Một môi trường tương tác nâng cao tương tự khác là bpython.