python - Python等效于省略三元运算符的第二部分(a if a else b)
问题描述
在某些语言中(我认为是 php 和 Java),您可以省略三元运算符的第二部分,如下所示:
a = "This is a string"
result = a ? : False
以上应该等价于
a = "This is a string"
result = a ? a : False
我想在以下(简化的)python代码中缩短三元运算符:
def myFunc():
return "This string could be empty, but now it's not."
result = myFunc() if myFunc() else False
print(result)
如果它不为空,这将打印字符串,但当它为空时打印 False。
我希望它更短的原因是因为现在我必须调用 myFunc() 两次而不是一次,如果你能够像其他语言一样省略其中一个。
当然,我可以将 myFunc() 分配给一个变量并在三元运算符中使用该变量两次,但这会使它再次变大。
在python中有没有简单的方法来做到这一点?或者这是不可能的?
解决方案
推荐阅读
- php - 如何从我的网站顶部删除此警告“警告:array_shift() 期望参数 1 为数组,在...中给出空值”?
- javascript - 错误:
属性和预期长度 d3.js - javascript - Google Sheets bacthUpdate 范围获取错误的数组索引
- botframework - 在 Luis 调度模型中查看端点话语的最佳实践是什么?
- java - 更改 JLabel 中图标的颜色
- javascript - 我可以使用 Electron 应用程序/JavaScript 控制/编写 InDesign 脚本吗?
- python-3.x - anaconda 环境:未找到 cupti64_100.dll
- python-3.x - BeautifulSoup 在读取或解析时将内容置于真实元素之外
- wpf - 如何使用滑入式动画为 ItemsControl 中插入的对象设置动画?
- java - 放心获取响应大小(以 KB 为单位)