rlcompleter --- Chức năng hoàn thành cho dòng đọc GNU¶
Source code: Lib/rlcompleter.py
Mô-đun rlcompleter xác định hàm hoàn thành phù hợp để chuyển đến set_completer() trong mô-đun readline.
Khi mô-đun này được nhập trên nền tảng Unix có sẵn mô-đun readline, một phiên bản của lớp Completer sẽ tự động được tạo và phương thức complete() của nó được đặt là readline completer. Phương thức này cung cấp sự hoàn thành của Python identifiers and keywords hợp lệ.
Ví dụ:
>>> nhập rlcompleter
>>> nhập dòng đọc
>>> readline.parse_and_bind("tab: hoàn thành")
>>> đọc dòng. <TABPRESSED>
readline.__doc__ readline.get_line_buffer( readline.read_init_file(
readline.__file__ readline.insert_text( readline.set_completer(
readline.__name__ readline.parse_and_bind(
>>> đọc dòng.
Mô-đun rlcompleter được thiết kế để sử dụng với interactive mode của Python. Trừ khi Python được chạy với tùy chọn -S, mô-đun sẽ tự động được nhập và định cấu hình (xem Cấu hình đường đọc).
Trên các nền tảng không có readline, lớp Completer được xác định bởi mô-đun này vẫn có thể được sử dụng cho các mục đích tùy chỉnh.
- class rlcompleter.Completer¶
Các đối tượng Completeer có phương thức sau:
- complete(text, state)¶
Trả lại lần hoàn thành tiếp theo có thể có cho text.
Khi được mô-đun
readlinegọi, phương thức này được gọi liên tiếp vớistate == 0, 1, 2, ...cho đến khi phương thức trả vềNone.Nếu được gọi cho text không bao gồm ký tự dấu chấm (
'.'), nó sẽ hoàn thành từ các tên hiện được xác định trong__main__,builtinsvà từ khóa (như được xác định bởi mô-đunkeyword).Nếu được gọi bằng tên có dấu chấm, nó sẽ cố gắng đánh giá bất kỳ thứ gì mà không có tác dụng phụ rõ ràng (các hàm sẽ không được đánh giá, nhưng nó có thể tạo ra các lệnh gọi đến
__getattr__()) cho đến phần cuối cùng và tìm kết quả khớp cho phần còn lại thông qua hàmdir(). Bất kỳ ngoại lệ nào được đưa ra trong quá trình đánh giá biểu thức đều bị bắt, tắt tiếng vàNoneđược trả về.