Оновлення коду optparse¶
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.
Дозволяє альтернативні префікси параметрів, наприклад
+
і/
.Обробка нуля або більше та одного або кількох аргументів стилю.
Створення більш інформативних повідомлень про використання.
Забезпечення набагато простішого інтерфейсу для користувацького
типу
ідії
.
Шлях часткового оновлення з optparse
до 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> ')
.