Проверьте, установлен ли необязательный аргумент ArgParse, указано значение по умолчанию. ⇐ Python

Программы на Python
Anonymous
Проверьте, установлен ли необязательный аргумент ArgParse, указано значение по умолчанию.

Сообщение Anonymous »

Я пытаюсь проверить, предоставлен ли пользователем необязательный аргумент, но я хочу установить его значение по умолчанию, если оно не указано. Если я попытаюсь использовать оператор if, используя None, по умолчанию в строке справки будет указано None, что неверно

Код: Выделить всё

import argparse
parser = argparse.ArgumentParser(usage=__file__ + " [--options]",
description=__doc__,
formatter_class=argparse.ArgumentDefaultsHelpFormatter)

parser.add_argument("--scheme", choices=["A", "B"])
parser.add_argument("--min-A", type=float, help="Default=5")
parser.add_argument("--min-B", type=float, help="Default=10")
args = parser.parse_args()

if args.scheme == "A":
if args.min_A:
min_A = args.min_A
else:
min_A = 5
else:
if args.min_A:
parser.error("--min-A can only be provided when --scheme is A")

#similar code for B
Здесь строка справки автоматически устанавливает значение по умолчанию «Нет». Если я поставлю значение по умолчанию 5, то я не смогу проверить, предоставлен ли пользователем --min-A, поскольку он сохраняет значение по умолчанию вместо None, когда параметр отсутствует во входных данных.
Есть идеи, как это реализовать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-supplied

Вернуться в «Python»