python - python接受单个参数输入,可以是两种不同的类型
问题描述
我处于接受用户输入的情况,它可以是True
orFalse
或string
.
我知道我可以将输入作为字符串然后将boolean
其解析为是否为true
or false
,但是有没有更好的方法将输入解析为string
or boolean
?
parser.add_argument('--s', type=int, default=False)
谢谢你。
解决方案
从技术上讲,你可以很容易地做到这一点。
value = arg == "true" if arg in ("true", "false") else arg
假设您想在任意情况下接受真/假,它只会稍微复杂一点:
value = arg.lower() == "true" if arg.lower() in ("true", "false") else arg
这可能会运行lower()
两次,所以如果这是一个问题,您可以先缓存该值。尽管在参数解析器中我怀疑它会是。
不过,实际上,我认为您更有可能应该接受两种不同的论点。像这样混合类型是一个不好的迹象,并且更难得到易于阅读、可调试的代码。
推荐阅读
- sql-server - 从 Azure SQL 数据库上的烧瓶应用程序调用远程过程不起作用
- django - 当用户单击提交按钮时,付款重定向无法正常工作
- pthreads - WebAssembly pthreads
- delphi-xe - DELPHI FIREDAC 主从关系和计算字段之间的优先级
- asp.net-core - IdentityServer4 通过 ProfileService 中的 ApiResource 限制声明
- video - FFMPEG、H264 编码:如果帧大小超过级别限制,是否会导致视频编码失败?
- css - 动画不适用于计算的 CSS 变量
- tinymce - 微小的 MCE 菜单项命名
- c# - IIS 进程启动,但 ASP.NET 核心不会,除非我请求页面
- discord.js - 是否可以让不和谐的机器人写在 word 文档中?(discord.js)