parser.add_argument 中的 store_true 如何使用

本文详细解析了Python中argparse模块的store_true行为。通过示例代码展示,当使用store_true时,即使未在命令行中指定参数,其默认值为False;一旦指定,则自动设为True。这对于无需参数值的开关型选项非常实用。

示例代码:

    parser.add_argument('-e', '--evaluate', dest='evaluate',
                        action='store_true',
                        help='evaluate model on validation set')

若文件名为 a.py

直接运行python a.py,输出结果False

运行python a.py -e,输出结果True

也就是说,action=‘store_true’,只要运行时该变量有传参就将该变量设为True。

参考:
[1] https://blog.youkuaiyun.com/zkq_1986/article/details/85287896

<think>我们被要求解释Python中argparse模块的add_argument方法的各个参数。根据引用[4],add_argument是argparse模块的一个方法,用于为命令行接口定义参数。引用[4]提供了详细的参数说明,包括第一个参数(参数名称)、第二个参数(多个参数设置)以及第三个参数(通常是help参数)。同时,其他引用也提供了一些示例和补充信息。我们将按照以下结构进行解释:1.第一个参数:参数名称(可以是短选项如`-f`,长选项如`--foo`,或者位置参数如`bar`) 2.第二个参数:多个可选参数设置(如dest,action,nargs, const, default, type, choices, required, help, metavar等) 3.第三个参数:通常是help,用于提供帮助信息此外,我们还可以参考引用[1]、[2]、[3]、[5]中的示例来补充说明。 下面开始详细解释:</think>### Python argparse.ArgumentParser add_argument 参数详解 `argparse` 是 Python 标准库中用于创建命令行接口的模块,`add_argument()` 方法用于定义命令行参数。其核心参数如下: #### 1. **参数名称(必选)** - 位置参数:直接指定名称(如 `'filename'`),对应命令行中不带前缀的参数 - 可选参数:以 `-`(短选项)或 `--`(长选项)开头(如 `'-v'` 或 `'--verbose'`) ```python parser.add_argument('input_file') # 位置参数 parser.add_argument('-o', '--output') # 可选参数 ``` #### 2. **关键参数设置(可选)** - **`dest`**:指定解析后参数的属性名 ```python parser.add_argument('--sum', dest='accumulate') # 通过args.accumulate访问 ``` - **`action`**:参数触发时的行为 - `'store'`:存储参数值(默认) - `'store_true'`/`'store_false'`:出现参数时存储 True/False ```python parser.add_argument('--verbose', action='store_true') # 出现--verbose时args.verbose=True ``` - **`nargs`**:接收参数数量 - `N`:精确数量(如 `nargs=2` 需两个值) - `'?'`:0或1个值 - `'*'`:0或多个值 - `'+'`:1或多个值 ```python parser.add_argument('nums', nargs='+') # 至少一个数字 ``` - **`type`**:参数类型转换 ```python parser.add_argument('--lr', type=float) # 将输入转为浮点数 ``` - **`default`**:默认值(未提供参数时使用) ```python parser.add_argument('--batch-size', default=32) ``` - **`choices`**:限定参数值范围 ```python parser.add_argument('--color', choices=['red', 'blue']) ``` - **`required`**:是否必须提供(默认可选参数非必须) ```python parser.add_argument('--model', required=True) ``` - **`help`**:帮助信息描述 ```python parser.add_argument('--help', help='显示帮助信息') ``` - **`metavar`**:帮助信息中的参数占位符 ```python parser.add_argument('file', metavar='INPUT_FILE') # 帮助显示为INPUT_FILE ``` #### 3. **示例解析 ```python import argparse parser = argparse.ArgumentParser() parser.add_argument('square', type=int, help="显示数字的平方") parser.add_argument('-v', '--verbose', action='store_true', help="详细输出模式") args = parser.parse_args() result = args.square ** 2 if args.verbose: print(f"{args.square}的平方是{result}") else: print(result) ``` - 命令行调用: ```bash python demo.py 4 --verbose # 输出:4的平方是16 python demo.py --verbose 4 # 顺序无关,输出相同[^5] ``` #### 4. **高级技巧** - **参数组**:用 `add_argument_group()` 分组显示参数 - **互斥参数**:用 `add_mutually_exclusive_group()` 实现互斥选项 - **子命令**:用 `add_subparsers()` 实现类似 `git commit` 的子命令结构 > 关键提示:通过 `parser.parse_known_args()` 可分离已知/未知参数[^3],适用于需要二次解析的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值