Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么parseargs将参数存储在列表中_Python_String_Python 2.7_Argparse - Fatal编程技术网

Python 为什么parseargs将参数存储在列表中

Python 为什么parseargs将参数存储在列表中,python,string,python-2.7,argparse,Python,String,Python 2.7,Argparse,我有一个argparse,它被赋予一个字符串: def f(): return 'dummy2' p = argparse.ArgumentParser() p.add_argument('--a', nargs=1, type=str) p.add_argument('--b', nargs='?', const=f(), default=f()) p.parse_args('--a dummy'.split()) 解析器名称空间是名称空间(a=['dummy'],b='dummy

我有一个argparse,它被赋予一个字符串:

def f():
    return 'dummy2'

p = argparse.ArgumentParser()
p.add_argument('--a', nargs=1, type=str)
p.add_argument('--b', nargs='?', const=f(), default=f())
p.parse_args('--a dummy'.split())
解析器名称空间是
名称空间(a=['dummy'],b='dummy2')


如何将
a
的参数存储为字符串而不是字符串列表?

很简单,只需跳过
nargs
的参数即可。试试这个:

p = argparse.ArgumentParser()
p.add_argument('--a', type=str)
p.add_argument('--b', nargs='?', const=f(), default=f())
我相信这正是你所期望的:

p.parse_args('--a dummy'.split())
=> Namespace(a='dummy', b='dummy2')
引述:

ArgumentParser对象通常将单个命令行参数与要执行的单个操作相关联。nargs关键字参数将不同数量的命令行参数与单个操作相关联。支持的值包括:

N(整数)。命令行中的N个参数将被收集到一个列表中。。。请注意,nargs=1生成一个项目列表。这与默认情况不同,默认情况下,项目由自身生成


很简单,只需跳过
nargs
的参数。试试这个:

p = argparse.ArgumentParser()
p.add_argument('--a', type=str)
p.add_argument('--b', nargs='?', const=f(), default=f())
我相信这正是你所期望的:

p.parse_args('--a dummy'.split())
=> Namespace(a='dummy', b='dummy2')
引述:

ArgumentParser对象通常将单个命令行参数与要执行的单个操作相关联。nargs关键字参数将不同数量的命令行参数与单个操作相关联。支持的值包括:

N(整数)。命令行中的N个参数将被收集到一个列表中。。。请注意,nargs=1生成一个项目列表。这与默认情况不同,默认情况下,项目由自身生成


你能解释一下吗?我想,
nargs1
应该强制只给出一个参数,基本上在我提供正确的字符串时什么也不做OK,没关系。。。刚刚看到这个('注意,nargs=1生成一个项目的列表。这与默认情况不同,默认情况下,项目是自己生成的。')。是的,它在文档中,我更新了我的答案以反映它。你能解释一下吗?我想,
nargs1
应该强制只给出一个参数,基本上在我提供正确的字符串时什么也不做OK,没关系。。。刚才看到了这一点('注意,nargs=1生成一个项目列表。这与默认情况不同,默认情况下,项目是自己生成的。')。是的,它在文档中,我更新了我的答案以反映它