您链接到的文档中的第一个示例--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/
.