Я новичок в argparse и не знаю, как установить значение по умолчанию для взаимной переменной.В частности:
У меня есть две переменные, и должна быть установлена только одна из них.Например:
import argparse
PARSER = argparse.ArgumentParser()
GROUP = PARSER.add_mutually_exclusive_group()
GROUP.add_argument(
'--a',
type=int,
nargs='?',
const=1,
default=1)
GROUP.add_argument(
'--b',
type=int)
PARSER.set_defaults(train_pass=1)
Ожидаемое поведение:
Может быть установлено не более одного из a и b.
Если ни a, ни b не установлены, a должно быть по умолчанию 1, а b должно быть None.
- Если заданы a или b, другое значение должно быть None.
Однако, даже если я поставлю task.py --b 10, он все равно установит значение a в 1.
Я проверил этот ответ: Установите значение по умолчанию равнымfalse, если другой взаимоисключающий аргумент имеет значение true , но он делает разные вещи.Он хочет, чтобы значение было значением по умолчанию (т. Е. 1 здесь), а не None, когда установлено значение b.
Любая помощь приветствуется.Большое спасибо!