Upgrading optparse code¶
Originally, the argparse module had attempted to maintain compatibility
with optparse. However, optparse was difficult to extend
transparently, particularly with the changes required to support
nargs= specifiers and better usage messages. When most everything in
optparse had either been copy-pasted over or monkey-patched, it no
longer seemed practical to try to maintain the backwards compatibility.
The argparse module improves on the optparse
module in a number of ways including:
Обробка позиційних аргументів.
Supporting subcommands.
Дозволяє альтернативні префікси параметрів, наприклад
+і/.Обробка нуля або більше та одного або кількох аргументів стилю.
Створення більш інформативних повідомлень про використання.
Забезпечення набагато простішого інтерфейсу для користувацького
типуідії.
A partial upgrade path from optparse to argparse:
Замініть усі виклики
optparse.OptionParser.add_option()на викликиArgumentParser.add_argument().Замініть
(options, args) = parser.parse_args()наargs = parser.parse_args()і додайте додаткові викликиArgumentParser.add_argument()для позиційних аргументів. Майте на увазі, що те, що раніше називалосяoptions, тепер у контекстіargparseназиваєтьсяargs.Замініть
optparse.OptionParser.disable_interspersed_args()на використанняparse_intermixed_args()замістьparse_args().Замініть дії зворотного виклику та аргументи ключового слова
callback_*на аргументиtypeабоaction.Замініть назви рядків для ключових аргументів
typeвідповідними об’єктами типу (наприклад, int, float, complex тощо).Замініть
optparse.ValuesнаNamespaceіoptparse.OptionErrorіoptparse.OptionValueErrorнаArgumentError.Замініть рядки неявними аргументами, такими як
%defaultабо%progстандартним синтаксисом Python, щоб використовувати словники для форматування рядків, тобто%(default)sі%(prog)s.Замініть аргумент
versionконструктора OptionParser на викликparser.add_argument('--version', action='version', version=' <the version> ').