Warum sollte ich es anstelle von optparse verwenden? Sind ihre neuen Funktionen, über die ich Bescheid wissen sollte?
@ Nicholas 'Antwort deckt dies gut ab, denke ich, aber nicht die "Meta" -Frage, mit der Sie beginnen:
Warum wurde ein weiteres Befehlszeilen-Parsing-Modul erstellt?
Das ist das Dilemma Nummer eins, wenn ein nützliches Modul zur Standardbibliothek hinzugefügt wird: Was tun Sie, wenn sich eine wesentlich bessere, aber abwärtskompatible Möglichkeit ergibt, dieselbe Art von Funktionalität bereitzustellen?
Entweder bleiben Sie bei der alten und zugegebenermaßen übertroffenen Methode (normalerweise, wenn es sich um komplizierte Pakete handelt: Asyncore vs Twisted, Tkinter vs WX oder Qt, ...) oder Sie haben mehrere inkompatible Möglichkeiten, dasselbe zu tun (XML) Parser, IMHO, sind ein noch besseres Beispiel dafür als Kommandozeilen-Parser - aber das email
Paket im Vergleich zu den unzähligen alten Methoden, mit ähnlichen Problemen umzugehen, ist auch nicht allzu weit entfernt ;-).
Sie können in den Dokumenten bedrohlich darüber meckern, dass die alten Methoden "veraltet" sind, aber (solange Sie die Abwärtskompatibilität beibehalten müssen), können Sie sie nicht wirklich entfernen, ohne große, wichtige Anwendungen daran zu hindern, auf neuere Python-Versionen umzusteigen.
(Das Dilemma Nummer zwei, das nicht direkt mit Ihrer Frage zusammenhängt, ist in dem alten Sprichwort zusammengefasst: "In der Standardbibliothek sterben gute Pakete" ... mit Veröffentlichungen alle anderthalb Jahre oder so, Pakete, die nicht sehr sind, Sehr stabil, da sie nicht öfter veröffentlicht werden müssen, kann tatsächlich erheblich darunter leiden, dass sie in der Standardbibliothek "eingefroren" werden ... aber das ist wirklich ein anderes Problem.