первый пример в документах, на которые вы ссылаетесь, предназначен для необязательный именованный аргумент --delete
. Установка action='store_true'
означает, что если вы включите в команду --delete
, то args.delete
будет установлено в True
, а если --delete
не включено в команду, то будет default=False
.
В этом случае установка default=False
на самом деле не требуется, потому что это поведение action='store_true'
. Преимущество явной установки default=False
заключается в том, что поведение понятно без необходимости искать документы argparse
.
parser.add_argument(
'--delete',
action='store_true',
dest='delete',
default=False,
help='Delete poll instead of closing it',
)
Ваш пример не имеет смысла, потому что name
не является необязательным аргументом.
parser.add_argument(
'name', type=str, default=False,
help="The name of the folder to be created")
Если вы попробуете этот пример, вы получите ошибку типа too few arguments
.
parser.add_argument(
'name', type=str, default=False
help="The name of the folder to be created")
Вам нужно установить nargs='?'
, если вы хотите, чтобы аргумент name
был необязательным. В этом случае будет использоваться ваше значение по умолчанию. Если вы его не установили, то по умолчанию будет None
parser.add_argument(
'name', type=str, nargs='?', default=False,
help="The name of the folder to be created")
Обратите внимание: если вашим аргументом является «имя создаваемой папки», может не иметь смысла устанавливать по умолчанию значение False
. Похоже, либо аргумент должен быть обязательным (в этом случае значение по умолчанию не требуется), либо значение по умолчанию должно быть строкой, например. /path/to/folder/
.
person
Alasdair
schedule
24.10.2017