作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个程序,它首先解析几个参数,其中一个是“详细”标志。但是,我还有一个“模拟”标志,如果它打开,我想自动将详细标志翻转为“真”。
现在我有这个工作:
if args.verbose or simulate:
verbose = True
我怎样才能把它放到一行中?我期待能够做类似的事情:
verbose = True if args.verbose or simulate
或喜欢:
verbose = True if (args.verbose or simulate)
在这里搜索时,我找到了一个适合一行的解决方案:
verbose = (False, True)[args.verbose or simulate]
但是,我发现该解决方案的可读性远不如我希望可行的其他解决方案。这可能吗,我只是错过了什么?还是不可能像这样在一行中的两次“真”检查之间使用“或”?
最佳答案
问题不在于 or
,而是您需要一个 else
子句来指定如果 if
语句的值应该是什么失败。否则,如果条件为假,将分配什么?
verbose = True if args.verbose or simulate else False
不过,根本不需要if
。如果您直接将测试结果分配给 verbose
就更简单了:
verbose = args.verbose or simulate
关于python - "or" bool 值在内联 "if"语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53036073/
我是一名优秀的程序员,十分优秀!