Подтвердить что ты не робот

Что означает метавар и действие в argparse в Python?

Я читаю через модуль argparse. Я застрял как то, что метавар и действие означает

>>> parser.add_argument('integers', metavar='N', type=int, nargs='+',
...                     help='an integer for the accumulator')
>>> parser.add_argument('--sum', dest='accumulate', action='store_const',
...                     const=sum, default=max,
...                     help='sum the integers (default: find the max)')

Я мог пропустить, но из того, что я прочитал, я не смог найти определения для metavar и action (action="store_const", etc). action (action="store_const", etc). что они на самом деле значат?

4b9b3361

Ответ 1

metavar используется в справочных сообщениях в месте ожидаемого аргумента. См. FOO по умолчанию metavar здесь:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.add_argument('bar')
>>> parser.parse_args('X --foo Y'.split())
Namespace(bar='X', foo='Y')
>>> parser.print_help()
usage:  [-h] [--foo FOO] bar
...

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

Ответ 2

Metavar: Он предоставляет другое имя для необязательного аргумента в справочных сообщениях. Укажите значение аргумента ключевого слова metavar в add_argument().

например:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', metavar='YYY')
>>> parser.add_argument('bar', metavar='XXX')
>>> parser.parse_args('X --foo Y'.split())
Namespace(bar='X', foo='Y')
>>> parser.print_help()
usage:  [-h] [--foo YYY] XXX

positional arguments:
  XXX

optional arguments:
  -h, --help  show this help message and exit
  --foo YYY

Ссылка - http://www.usatlas.bnl.gov/~caballer/files/argparse/add_argument.html

Действие: Аргументы могут инициировать различные действия, указанные аргументом action для add_argument(). Существует шесть встроенных действий, которые могут срабатывать при возникновении аргумента:

(1) Сохранить. Сохраните значение после опционального преобразования его в другой тип. Это действие по умолчанию принято, если ни один не указан явно.

(2) store_true/store_false - сохранить соответствующее логическое значение.

(3) store_const - сохранить значение, определенное как часть спецификации аргумента, а не значение, которое исходит из анализируемых аргументов. Обычно это используется для реализации флагов командной строки, которые arent booleans.

(4) append - сохранить значение в списке. Несколько значений сохраняются, если аргумент повторяется.

(5) append_const - сохранить значение, определенное в спецификации аргумента, в список.

(6) version - печатает информацию о версии программы и затем выходит.

Ссылка - http://bioportal.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/argparse/index.html