You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取argparser中所有定义参数的dest值?

获取argparse解析器中所有参数的dest值

你可以直接访问argparse解析器的内部属性来提取参数的dest值,无需调用parse_args()解析命令行输入:

方法一:遍历所有动作并过滤帮助项

argparse解析器的_actions属性包含了所有添加的参数动作(包括默认的帮助动作),遍历该列表并提取每个动作的dest属性即可,若不需要帮助项可过滤掉:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('arg1')
parser.add_argument('arg2')
parser.add_argument('arg3')
parser.add_argument('arg4')

# 提取所有参数的dest值,排除默认的help动作
dest_values = [action.dest for action in parser._actions if action.dest != 'help']
print(dest_values)  # 输出: ['arg1', 'arg2', 'arg3', 'arg4']

方法二:分别获取位置参数与可选参数

如果需要区分位置参数和可选参数,可以使用解析器的_get_positional_actions()和_get_optional_actions()方法:

# 获取所有位置参数的dest值
positional_dests = [action.dest for action in parser._get_positional_actions()]
# 获取所有可选参数的dest值
optional_dests = [action.dest for action in parser._get_optional_actions()]
# 合并所有dest值
all_dests = positional_dests + optional_dests

无帮助动作的简化场景

如果创建解析器时通过add_help=False禁用了帮助功能,可直接遍历_actions无需过滤:

parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('arg1')
parser.add_argument('arg2')

dest_values = [action.dest for action in parser._actions]

内容的提问来源于stack exchange,提问作者Sterling Butters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:27:02