import argparse parser = argparse.ArgumentParser() parser.add_argument(...) parser.set_defaults(**kwargs)
**kwargs
- В большинстве случаев атрибуты объекта, возвращаемого методом parser.parse_args()
, будут полностью определены путем проверки параметров командной строки и их действий.
Метод set_defaults()
объекта ArgumentParser
позволяет добавлять некоторые дополнительные атрибуты, которые определяются без какой-либо проверки командной строки:
>>> parser = argparse.ArgumentParser() >>> parser.add_argument('foo', type=int) >>> parser.set_defaults(bar=42, baz='badger') >>> parser.parse_args(['736']) # Namespace(bar=42, baz='badger', foo=736)
Обратите внимание, что значения по умолчанию на уровне парсера всегда переопределяют значения по умолчанию на уровне параметров:
>>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', default='bar') >>> parser.set_defaults(foo='spam') >>> parser.parse_args([]) # Namespace(foo='spam')
Значения по умолчанию на уровне парсера могут быть особенно полезны при работе с несколькими парсерами. Смотрите пример в методе parser.add_subparsers()
.
parser.get_default(dest)
:Метод get_default()
объекта ArgumentParser
возвращает значение по умолчанию для атрибута пространства имен, установленное с помощью методов parser.add_argument()
или parser.set_defaults()
:
>>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', default='badger') >>> parser.get_default('foo') # 'badger'