Чому я повинен використовувати його замість optparse? Чи є їхні нові функції, про які я повинен знати?
@ Відповідь Ніколаса це добре стосується, я думаю, але не більше "мета" питання, з якого ви починаєте:
Чому створений ще один модуль розбору командного рядка?
Ось така дилема номер один, коли будь-який корисний модуль додається до стандартної бібліотеки: що робити, коли з’являється істотно кращий, але не сумісний із зворотом спосіб надання такого ж функціоналу?
Або ви дотримуєтесь старого і, звичайно, перевершеного способу (як правило, коли ми говоримо про складні пакети: asyncore vs twisted, tkinter vs wx або Qt, ...), або у вас є кілька несумісних способів зробити те ж саме (XML парсери, IMHO, є ще кращим прикладом цього, ніж аналізатори командного рядка - але email
пакет проти безлічі старих способів вирішити подібні проблеми теж не надто далеко ;-).
Ви можете зробити загрозливі бурчання в документах про те, що старі способи "застаріли", але (доки вам потрібно зберігати зворотну сумісність) ви дійсно не можете їх забрати, не зупиняючи перехід великих, важливих програм на новіші випуски Python.
(Дилема номер два, безпосередньо не пов’язана з вашим запитанням, узагальнена в старому вислові "стандартна бібліотека - це те, коли хороші пакунки вмирають" ... з випусками кожні півтора року або близько того пакунків, які не дуже, дуже стабільний, не потребуючи випусків частіше за все, насправді може істотно постраждати, коли «заморожений» у стандартній бібліотеці ... але це справді інше питання).