Почему я должен использовать это вместо
optparse? Являются ли их новые функции я
должен знать о?
@ Я думаю, что ответ Николаса охватывает это хорошо, но не более мета-вопрос, с которого вы начинаете:
Почему есть еще одна командная строка
модуль синтаксического анализа создан?
Это дилемма номер один, когда в стандартную библиотеку добавляется какой-либо полезный модуль: что вы делаете, когда появляется существенно лучший, но несовместимый с обратным способом способ обеспечения такой же функциональности?
Либо вы придерживаетесь старого и общепризнанного способа (обычно, когда мы говорим о сложных пакетах: asyncore vs twisted, tkinter vs wx или Qt, ...), либо у вас возникает несколько несовместимых способов сделать то же самое вещь (парсеры XML, IMHO, являются еще лучшим примером этого, чем парсеры командной строки - но пакет email
против множества старых способов решения подобных проблем тоже не слишком далеко; -).
Вы можете издавать угрожающие ворчания в документах по поводу того, что старые способы «устарели», но (если вам необходимо поддерживать обратную совместимость), вы не сможете их убрать, не остановив крупные важные приложения от перехода на более новые. Выпуски Python.
(Дилемма номер два, напрямую не связанная с вашим вопросом, резюмируется в старой поговорке «стандартная библиотека - это то место, куда умирают хорошие пакеты» ... с выпусками раз в полтора года или около того, пакеты, которые не ' очень, очень стабильно, не , нуждающихся в выпусках чаще, чем это, на самом деле может существенно пострадать, будучи "замороженным" в стандартной библиотеке ... но это действительно другая проблема ).