Документация Argparse

#documentation #argparse

#Документация #argparse

Вопрос:

В документации argparse я обнаружил следующее:

 ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]).
  

Почему параметры записываются в скобках и через запятую внутри скобок? Имеет ли это какое-то значение?

Почему у меня не написано так:

 ArgumentParser.add_argument(name or flags..., action, nargs, const, default, type, choices, required, help, metavar, dest). 
  

Комментарии:

1. Параметры внутри [,…] являются необязательными. Эти параметры также могут быть заданы в формате ключевого слова, как вы можете видеть в примерах кода, например parser.add_argument('--foo', nargs='?', const='c', default='d') .

2. Я понимаю. Но почему запятые внутри скобок?

3. Где они должны ставить запятые? Это не важная деталь. Для параметров, если они используются, потребуются разделители через запятую. Это просто обычный синтаксис Python. Ничего особенного для argparse.

4. Еще один момент, касающийся этих параметров — большинство из них имеют разумные значения по умолчанию. Таким образом, вам нужно предоставить только те, которые являются особыми для вашего случая. Наиболее распространенная спецификация аргумента — это add_argument('foo') для позиционного и add_argument('-f', '--foo') для помеченного аргумента.

5. На самом деле подпись для add_argument должна больше походить на подпись для ArgumentParser . Все эти аргументы, заключенные в квадратные скобки, являются аргументами ключевого слова. Все позиционные аргументы (не являющиеся ключевыми словами) интерпретируются как одно из ‘имен или флагов …’.