Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
从解析器获取参数名称,而不在argparse python中解析参数_Python_Argparse - Fatal编程技术网

从解析器获取参数名称,而不在argparse python中解析参数

从解析器获取参数名称,而不在argparse python中解析参数,python,argparse,Python,Argparse,在python脚本make\u parser.py中有以下参数解析器: import argparse parser = argparse.ArgumentParser( description='Multiplies the input <n> by <m>' ) parser.add_argument( 'n', type=float, help='Input number to be multiplied' ) parser.add_argumen

在python脚本
make\u parser.py
中有以下参数解析器:

import argparse
parser = argparse.ArgumentParser(
    description='Multiplies the input <n> by <m>'
)
parser.add_argument(
    'n', type=float, help='Input number to be multiplied'
)

parser.add_argument(
    '-m', '--optional-multiplier',
    type=float, default=1,
    help='multiplier for <n> : (default: 1)'
)
对于可选参数也是一样,比如
解析器。get_optional_args

添加到代码中:

for action in parser._actions:
    print(action)

print([(action.dest, action.option_strings) for action in parser._actions])

print([action.dest for action in parser._actions if not action.option_strings])
print([action.dest for action in parser._actions if action.option_strings])
结果(为清晰起见编辑):

0848:~/mypy$python3 stack57450629.py
_帮助操作(选项_strings=['-h','-help'],dest='help',nargs=0,const=None,default='==SUPPRESS==',type=None,choices=None,help='显示此帮助消息并退出',metavar=None)
_StoreAction(选项_strings=[],dest='n',nargs=None,const=None,default=None,type=,choices=None,help='Input number to multiply',metavar=None)
_StoreAction(option_strings=['-m','--optional multiplier'],dest='optional_multiplier',nargs=None,const=None,default=1,type=,choices=None,help='multiplier for:(default:1'),metavar=None)
[('help',['-h','-help'],('n',[]),('optional_乘数',['-m','-optional乘数'])]
[n']
[“帮助”,“可选的\u乘数”]

可能使用
\u get\u positional\u kwargs()
\u get\u optional\u kwargs()
方法?@SamChats我认为它不会返回以前定义的参数。它有一个必需的参数
dest
parse.\u actions
是已定义的
操作的列表。每个操作都有一个
dest
属性。位置由空的
选项\u strings
属性标识。
0848:~/mypy$ python3 stack57450629.py 
_HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='show this help message and exit', metavar=None)
_StoreAction(option_strings=[], dest='n', nargs=None, const=None, default=None, type=<class 'float'>, choices=None, help='Input number to be multiplied', metavar=None)
_StoreAction(option_strings=['-m', '--optional-multiplier'], dest='optional_multiplier', nargs=None, const=None, default=1, type=<class 'float'>, choices=None, help='multiplier for <n> : (default: 1)', metavar=None)

[('help', ['-h', '--help']), ('n', []), ('optional_multiplier', ['-m', '--optional-multiplier'])]

['n']

['help', 'optional_multiplier']