Skip to content

Latest commit

 

History

History
14 lines (7 loc) · 2.93 KB

14.-interactive-input-editing-and-history-substitution.md

File metadata and controls

14 lines (7 loc) · 2.93 KB

14. Chỉnh sửa ngõ vào tương tác và thay đổi lịch sử

Một vài phiên bản của trình thông dịch Python hỗ trợ chỉnh sửa dòng hiện tại của đầu vào và thay đổi lịch sử, tương tự như các tính năng ở Korn shell và GNU Bash shell. Tính năng này được triển khai sử dụng thư viện GNU Readline, thư viện hỗ trợ nhiều cách chỉnh sửa khác nhau. Thư viện này có tài liệu riêng của nó, vì vậy sẽ không đề cập lại ở đây.

14.1. Hoàn tất sử dụng tab(tab completion) và chỉnh sửa lịch sử

Sự hoàn tất của tên biến và module được tự động cho phép ngay khi trình thông dịch khởi động vì vậy phím tab gọi hàm hoàn thiện; nó nhìn vào tên của phát biểu trong Python, các biến cục bộ hiện hành, và các module có sẵn. Với những biểu thức có dấu chấm như là string.a, nó sẽ đánh giá biểu thức cho đến dấu '.' cuối cùng và sau đó đề nghị những hoàn thiện 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ể gây nên đoạn mã được ứng dụng định nghĩa (application-defined) nếu một đối tượng với phương pháp __getattr__() là một phần của biểu thức. Cấu hình mặc định cũng lưu lại lịch sử của bạn vào một file có tên .python_history trong thư mục user/ của bạn. Lịch sử sẽ tiếp tục có sẵn trong suốt phiên tương tác tiếp theo của trình thông dịch.

14.2. Những thay thế cho trình thông dịch tương tác

Tính năng này là một bước tiến lớn so với những phiên bản cũ hơn của trình thông dịch; tuy nhiên, một vài mong muốn vẫn còn sót lại: thật tốt nếu việc căn lề sao cho đúng được đề cập trong dòng tiếp theo. (việc phân tích cú pháp parser biết được nếu một dấu hiệu thụt lề được yêu cầu tiếp theo). 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 câu lệnh để kiểm tra (hoặc là đề nghị) những dấu ngoặc, trích dẫn,... tương ứng cũng sẽ rất hữu dụng.

Một trình thông dịch thay thế được nâng cấp xuất hiện gần đây là IPython, nó có những tính năng như hoàn thiện dùng tab, khám phá đối tượng và quản lý lịch sử nâng cao. Nó cũng có thể tùy chỉnh và nhúng triệt để vào trong những ứng dụng khác. Một môi trường tương tác được nâng cấp tương tự là bpython.