Вывод значений по умолчанию в argparse --help: Python
Быстрый ответ
Для отображения значений по умолчанию в справке argparse
, достаточно добавить %(default)s
в параметр help
метода add_argument
. В результате такого изменения значения по умолчанию будут автоматически выводиться при запросе справки с помощью команды --help
.
Вот пример:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=10, help='Задайте значение счетчика (по умолчанию: %(default)s)')
args = parser.parse_args()
Для отображения значений по умолчанию, используйте справку --help
к параметру --count
.
Для автоматического отображения более полной информации используйте параметр formatter_class=argparse.ArgumentDefaultsHelpFormatter
при создании экземпляра команды ArgumentParser
. В этом случае значения по умолчанию внесутся в справку по всем параметрам.
Использование formatter_class для автоматизации
Если вы хотите автоматизировать управление параметрами и объединить отображение значений аргументов, то применяйте параметр formatter_class
при создании объекта ArgumentParser
.
Мощь ArgumentDefaultsHelpFormatter
Данный специальный класс ArgumentDefaultsHelpFormatter
автоматизирует процесс дополнения справки информацией о значениях по умолчанию:
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--size', type=int, default=1024, help='Укажите размер')
args = parser.parse_args()
Каждый параметр к команде будет содержать информацию о своем по умолчанию значении.
Создайте свой форматтер
Если встроенный форматтер не отвечает всем вашим требованиям, определите свой собственный класс, который будет наследовать ArgumentDefaultsHelpFormatter
:
import argparse
class CustomHelpFormatter(argparse.ArgumentDefaultsHelpFormatter):
def _get_help_string(self, action):
help = action.help
if '%(default)s' not in action.help and action.default is not None and action.default is not argparse.SUPPRESS:
help += ' (по умолчанию: %(default)s)'
return help
parser = argparse.ArgumentParser(formatter_class=CustomHelpFormatter)
parser.add_argument('--verbosity', type=int, choices=[0, 1, 2], help='Выберите степень детализации вывода')
args = parser.parse_args()
Теперь вы получили более гибкий контроль над форматированием вывода справки.
Расширенное настройка форматтера через множественное наследование
Для совмещения качеств разных форматтеров используйте множественное наследование. Но будьте аккуратны с внутренними API.
class HybridFormatter(argparse.ArgumentDefaultsHelpFormatter, argparse.RawTextHelpFormatter):
pass
Применив этот подход, можно одновременно отображать значения по умолчанию и сохранять первоначальное форматирование текста.
Визуализация
Процесс отображения значений по умолчанию в справке argparse
можно сравнить с чтением этикетки продуктов в магазине:
Представим себе ситуацию, в которой вы ищете арахисовое масло и просматриваете информацию на упаковке:
| Пищевая ценность | Значение | По умолчанию? |
| ------------------------- | -------- | ------------- |
| Калорийность | 200 | |
| Общее содержание жиров | 16г | ✅ |
| Натрий | 150мг | |
Дополнение параметров командной строки значениями по умолчанию:
Пользователи сразу видят, что именно предоставляется командой по умолчанию.
### Оформление помощи
С помощью `help` вы можете кратко и ясно представить необходимую информацию:
- **Будьте кратким**: Слишком подробное описание усложняет восприятие.
- **Сосредоточьтесь на цели**: Отметьте причину использования параметра — это значительно улучшает понимание его назначения.
В этом примере каждая опция ясно объясняется и указывается их применение.
### Избегание распространённых ошибок
Выбирайте значения по умолчанию, которые будут оптимальны для большинства сценариев. Оповещая о предотвращении ошибок, предлагайте наглядные инструкции.
```
Параметры nargs
и const
позволяют выбрать другое распространённое значение быстрее.
Полезные материалы
- argparse — Парсер для параметров командной строки, аргументов и подкоманд — официальная документация по модулю argparse.
- python – Argparse: Как включить значения по умолчанию в '--help'? – обсуждение на Stack Overflow об интеграции значений по умолчанию в справку.
- argparse — Парсинг опций и аргументов командной строки — руководство по добавлению значений по умолчанию в сообщения помощи.
- Учебник по Python – Argparse — видеоурок по использованию аргументов командной строки с
argparse
. - Руководство по Argparse — Документация Python 3.12.1 — учебник по использованию подкоманд с
argparse
. - Некоторые полезные приемы с argparse — практический пример пользовательского действия
argparse
. - Создание интерфейсов командной строки с помощью модуля argparse Python's — статья о создании интерфейсов командной строки с использованием
argparse
.