Tại sao tôi nên sử dụng nó thay vì optparse? Là những tính năng mới của họ tôi nên biết về?
Câu trả lời của @ Nicholas bao gồm điều này tốt, tôi nghĩ, nhưng không phải là câu hỏi "meta" hơn mà bạn bắt đầu với:
Tại sao có một mô-đun phân tích dòng lệnh khác được tạo ra?
Đó là vấn đề nan giải số một khi bất kỳ mô-đun hữu ích nào được thêm vào thư viện tiêu chuẩn: bạn sẽ làm gì khi một cách tốt hơn, nhưng không tương thích ngược, để cung cấp cùng loại chức năng xuất hiện?
Hoặc bạn gắn bó với cách cũ và được thừa nhận (thường là khi chúng ta đang nói về các gói phức tạp: asyncore vs twist, tkinter vs wx hoặc Qt, ...) hoặc bạn kết thúc với nhiều cách không tương thích để làm điều tương tự (XML Trình phân tích cú pháp, IMHO, là một ví dụ thậm chí còn tốt hơn so với trình phân tích cú pháp dòng lệnh - nhưng email
gói so với vô số cách cũ để xử lý các vấn đề tương tự cũng không quá xa ;-).
Bạn có thể khiến những lời cằn nhằn đe dọa trong các tài liệu về những cách cũ bị "phản đối", nhưng (miễn là bạn cần giữ khả năng tương thích ngược), bạn không thể thực sự loại bỏ chúng mà không ngăn các ứng dụng lớn, quan trọng chuyển sang các bản phát hành Python mới hơn.
(Vấn đề nan giải số hai, không liên quan trực tiếp đến câu hỏi của bạn, được tóm tắt trong câu nói cũ "thư viện tiêu chuẩn là nơi các gói tốt sẽ chết" ... với các bản phát hành mỗi năm rưỡi hoặc lâu hơn, các gói không phải là rất, rất ổn định, không cần phát hành thường xuyên hơn thế, thực sự có thể bị ảnh hưởng đáng kể do bị "đóng băng" trong thư viện tiêu chuẩn ... nhưng, đó thực sự là một vấn đề khác).