import argparseparser = argparse.ArgumentParser(description="description")parser.add_argument('--pa','-a',action='store_true')     # store_true 就默认为False
parser.add_argument('--pb','-b',action="store_true",default=True)
parser.add_argument('--pc','-c',action="store_true",default=False)parser.add_argument('--pd','-d',action='store_false')    # store_false 就默认为True
parser.add_argument('--pe','-e',action="store_false",default=True)
parser.add_argument('--pf','-f',action="store_false",default=False)args = parser.parse_args()
print(args)

# 不指定参数的时候
# Namespace(pa=False, pb=True, pc=False, pd=True, pe=True, pf=False)

# 运行 python 1.py -a -b -c -d -e -f
# Namespace(pa=True, pb=True, pc=True, pd=False, pe=False, pf=False)

# 运行 python 1.py --pa --pb --pc --pd --pe --pf
# Namespace(pa=True, pb=True, pc=True, pd=False, pe=False, pf=False)

直接上代码:

可以看到,

不指定 default的时候:

action='store_true' 的默认值为 False
action='store_false' 的默认值为 True

如果指定 default:

那就按照default的值作为初始值,例如:action='store_true',default = False  的默认值就为 False

命令行指定了参数:

如果命令行中指定了该参数,就是--pa/--a ......那么就会变为action里面的值,例如:action='store_true'的参数,那么命令行指定了该参数,那么它就为 true,和default无关


灵活设置命令行参数的行为方式,可以给程序设计带来很大的便利,毕竟输入和输出也是很重要的两个部分。我们用python的argparse模块制作命令行程序,用argparse.ArgumentParser对象的add_argument函数增加命令行参数,而action用来控制命令行参数的(部分)行为方式。

有一个比较有意思的传参方式:
比如在 demo1.py 中指定 action=’store_true’的时候:
parser.add_argument(‘--is_train’, action=’store_true’, default=False)

在运行的时候:
python demo1.py 默认是False
python demo1.py --is_train 是True, 注意这里没有给 is_train赋值

这个用法是“开关”的作用。即假如原来默认是Fasle那么现在你添加该参数后不需要指定True或者False就可以改变它的默认值,
指定action='store_true'之后,在运行程序添加参数时直接输入变量名,可以省略对应的默认值True或者False

https://blog.csdn.net/zjm750617105/article/details/76572409​​​​​​​

https://blog.csdn.net/liuweiyuxiang/article/details/82918911

add_argument函数action参数的store_true==》在运行程序添加参数时直接输入变量名,可以省略对应的默认值True或者False相关推荐

  1. ABP学习 解决:Update-Database : 无法将“Update-Database”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的问题

    ABP学习 解决:Update-Database : 无法将"Update-Database"项识别为 cmdlet.函数.脚本文件或可运行程序的名称的问题 参考文章: (1)AB ...

  2. ubuntu:无法将“ubuntu1804.exe”项识别为cmdlet、函数、脚本文件或可运行程序的名称。【已解决】

    出现问题:无法将"ubuntu1804.exe"项识别为cmdlet.函数.脚本文件或可运行程序的名称. 解决办法: 第一步  进入此目录下查看是否有"ubuntu180 ...

  3. 解决vue: 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称...

    我是用yarn安装的vue脚手架(yarn global add @vue/cli),yarn提示安装成功后,运行了下vue --version,结果报错. vue : 无法将"vue&qu ...

  4. '无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称' 或 'vue不是内部或外部命令' 的解决方法...

    如果在使用 vue 初始化项目的时候提示: vue : 无法将"vue"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然 ...

  5. tensorboard : 无法将“tensorboard”项识别为 cmdlet、函数、脚本文件或可运行 程序的名称。

    tensorboard可视化建模 tensorboard : 无法将"tensorboard"项识别为 cmdlet.函数.脚本文件或可运行 程序的名称.请检查名称的拼写,如果包括 ...

  6. vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次。

    vue : 无法将"vue"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次. 报错原因: 没有安装脚手架v ...

  7. yarn的配置 -- 无法将“yo”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    yo : 无法将"yo"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 在这里以 yarn 安装 yeom ...

  8. 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题

    解决VScode安装Babel转码器报错:无法将"cnpm"项识别为cmdlet\函数.脚本文件或可运行程序的名称的问题 报错结果如下: 解决方案 第一步:安装npm 点我安装np ...

  9. Python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    Python pip : 无法将"pip"项识别为 cmdlet.函数.脚本文件或可运行程序的名称. 检查名称的拼写,路径是否正确 将python安装路径下的Scripts添加到系 ...

最新文章

  1. 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
  2. php mysql sample,GitHub - BensonWuu/php-apache-mysql-sample
  3. jquery and jquery validation 常见问题解决
  4. (转)jquery插件Validate的使用
  5. LeetCode —— 1554. 只有一个不同字符的字符串(Python)
  6. linux 读分区表文件,Linux 磁盘分区表、文件系统查看和操作
  7. Linux 高级流量控制
  8. 华为HarmonyOS 2.0全面升级,构建中国软件的“根”!
  9. 普林斯顿微积分读本篇十三:积分
  10. Java 编程练习之:101-200之间的素数
  11. 什么是网站PR值?如何提高网站pr值?网站pr值查询!
  12. Qt编写安防视频监控系统65-子模块9数据调试
  13. 清华大学计算机刘云鹏,清华大学2017年在豫高招录取结束
  14. python-gif图生成
  15. wechat4j获取用户昵称乱码修复
  16. 触龙说赵太后原文及翻译
  17. java默认收集器_jvm默认垃圾收集器
  18. Java发送邮件中文乱码问题
  19. 警惕不良商家利用Panasonic SDFormatter 软件对SD/TF卡容量造假
  20. ArcGIS之宗地分割与编号

热门文章

  1. Oracle的REDO和UNDO
  2. 靠加班?靠团建?靠个人?请停止无效努力!
  3. iOS NSURLSession DataTask(数据任务)
  4. 《编写高质量代码:改善c程序代码的125个建议》——建议4-2:浮点数转换为新类型时必须做范围检查...
  5. CDN缓存服务器现状
  6. 天线增益英文名称:antenna gain
  7. java网络图片与二进制字符串相互转换
  8. android系统自动休眠代码流程,Android P 电源管理(4)待机流程
  9. 信息学奥赛一本通 2042:【例5.10】稀疏矩阵
  10. 信息学奥赛一本通(2034:【例5.1】反序输出)