Spec-Zone.ru › Python 3.12

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

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

Spec-Zone.ru

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