执行默认变量替换的最简单方法是什么?
x = None
... (some process which may set x)
if x is None: use_x = "default"
else: use_x = x
有没有办法在一行中写这个?
答案 0 :(得分:10)
您可以使用conditional expression:
use_x = "default" if x is None else x
你可以使用dict默认为x,如果该键不存在以类似于bash语法但条件将是惯用的方式:
use_x = {None: "default"}.get(x, x)
答案 1 :(得分:4)
您可以使用
x = x or "default"
在Python中。这不完全相同,因为它依赖于truth values的Python定义,这与Bash对set和unset值的区别不同。但这是一个近似的近似和惯用的 Python方法,解决了测试未设置值的相同的一般问题。
如果您特别只对替换None
值感兴趣,那么此代码将产生错误的结果,而Padraic的解决方案更合适。