Spec-Zone.ru › Python 3.13

Модернизация кода optparse

Изначально модуль argparse пытался сохранить совместимость с optparse. Однако, optparse было трудно расширять прозрачно, особенно с изменениями, необходимыми для поддержки спецификаторов nargs= и улучшенных сообщений об использовании. Когда большая часть кода optparse была либо скопирована, либо модифицирована с помощью monkey-patching, сохранять обратную совместимость перестало быть практичным.

Модуль argparse улучшает модуль optparse по нескольким направлениям, включая:

  • Обработку позиционных аргументов.
  • Поддержку подкоманд.
  • Поддержку альтернативных префиксов опций, таких как + и /.
  • Обработку аргументов типа «ноль или более» и «один или более».
  • Генерацию более информативных сообщений об использовании.
  • Предоставление гораздо более простого интерфейса для настраиваемых type и action.

Частичный путь обновления от 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.
  • Замените аргумент конструктора OptionParser version на вызов parser.add_argument('--version', action='version', version='<the version>').

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/howto/argparse-optparse.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API