在 Javascript 中,我可以像这样分配一个值:
var i = p || 4
显然,如果 p 未定义,它将使用 4。在 Python 中是否有比 try:
/except:
组合更优雅的版本?
try:
i = p
except:
i = 4
最佳答案
人们有时会使用 Python 的 or-operator为此目的:
def f(p=None):
i = p or 4
...
依赖于 or 运算符的“Python 独有”方面来返回使表达式为真的值(而不是仅仅返回 True 或 False)。
另一个提供更大灵 active 的选项是使用 conditional expression :
def f(p=None):
i = p if p is not None else 4
...
如果您只想检查一个变量是否已经定义,try/except 是最干净的方法:
try:
i = p
except NameError:
pass
话虽如此,这对于 Python 来说是不典型的,并且可能暗示程序设计存在问题。
最好将变量简单地初始化为占位符值,例如 None。在这方面,Python 的风格与 Javascript 有所不同。
关于 python ||备份声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869861/