如果在Python中没有返回默认值,是否有简写?

Is there shorthand for returning a default value if None in Python?

本问题已经有最佳答案,请猛点这里访问。

在c中,我可以说x ??"",如果x不为空,则给出x;如果x为空,则给出空字符串。我发现它对于使用数据库很有用。

如果python在变量中找不到任何值,是否有返回默认值的方法?


您可以使用or运算符:

1
return x or"default"

注意,如果x是任何错误的值,它也返回"default",包括空列表、0、空字符串,甚至datetime.time(0)(午夜)。


1
return"default" if x is None else x

试试上面的。


可以使用条件表达式:

1
x if x is not None else some_value

例子:

1
2
3
4
5
6
7
8
9
In [22]: x = None

In [23]: print x if x is not None else"foo"
foo

In [24]: x ="bar"

In [25]: print x if x is not None else"foo"
bar

1
x or"default"

最有效-我甚至可以在不执行两次或使用额外变量的情况下直接使用函数调用:

1
self.lineEdit_path.setText( self.getDir(basepath) or basepath )

我在打开qt的dialog.getExistingDirectory()和取消时使用它,它返回空字符串。


你已经得到了三元语法x if x else ''——这就是你想要的吗?