Python中的Bash${var:-default}等价物?
执行默认变量替换的最简单方法是什么Python中的Bash${var:-default}等价物?,python,Python,执行默认变量替换的最简单方法是什么 x = None ... (some process which may set x) if x is None: use_x = "default" else: use_x = x 有没有办法把这写在一行上?你可以用 x = x or "default" 在Python中。这并不完全相同,因为它取决于的Python定义,这不同于Bash对set和unset值的区分。但这是一种近似的、惯用的Python方法,可以解决测试未设置值的一般问题
x = None
... (some process which may set x)
if x is None: use_x = "default"
else: use_x = x
有没有办法把这写在一行上?你可以用
x = x or "default"
在Python中。这并不完全相同,因为它取决于的Python定义,这不同于Bash对set和unset值的区分。但这是一种近似的、惯用的Python方法,可以解决测试未设置值的一般问题
如果您特别想只替换None
值,则此代码将产生错误的结果,Padraic的解决方案更合适。您可以使用:
如果键不存在以类似于bash语法,但条件键是惯用的方式,则可以使用默认为x的dict:
use_x = {None: "default"}.get(x, x)
这不是同一件事,在python的布尔上下文中,很多事情都被认为是错误的。这可能有用,但首先你必须要求澄清。@KarolyHorvath虽然我同意它们不一样,但这是解决同一问题的惯用方法。我认为它在实践中比理论上的讨论更有帮助。事实上,如果x等于0,这将不起作用。我真的想检查无值
use_x = {None: "default"}.get(x, x)