Cor*_*ein 9 python conditional-operator
许多语言的三元运算符都是这样的:
x = f() ? f() : g()
Run Code Online (Sandbox Code Playgroud)
其中if f()为truthy则x赋值为f(),否则赋值为g().但是,某些语言有一个更简洁的elvis运算符,它在功能上是等价的:
x = f() ?: g()
Run Code Online (Sandbox Code Playgroud)
在python中,三元运算符表达如下:
x = f() if f() else g()
Run Code Online (Sandbox Code Playgroud)
但是python有更简洁的elvis操作符吗?
也许是这样的:
x = f() else g() # Not actually valid python
Run Code Online (Sandbox Code Playgroud)
Rob*_*obᵩ 22
Python确实有elvis运算符.它是条件or运算符:
x = f() or g()
Run Code Online (Sandbox Code Playgroud)
f()被评估.如果真实,则为x赋值f(),否则为x赋值g().
参考:https://en.wikipedia.org/wiki/Elvis_operator#Analogous_use_of_the_OR_operator
Ale*_*sky 14
注意Python 没有由以下定义的空合并运算符:
a if a is not None else b
Run Code Online (Sandbox Code Playgroud)
操作or员a or b检查其真实性a是False何时a==0或len(a)==0或其他类似情况。看看什么是真值和假值
有提议添加此类运营商PEP 505
| 归档时间: |
|
| 查看次数: |
2757 次 |
| 最近记录: |