在C#中,我可以说x ?? "",如果x不为null,它将给出x,如果x为null,则为空字符串.我发现它对于使用数据库很有用.
如果Python在变量中找到None,有没有办法返回默认值?
sta*_*ker 277
您可以使用or运算符:
return x or "default"
Run Code Online (Sandbox Code Playgroud)
请注意,"default"如果x是任何有价值的值,这也会返回,包括空列表,0,空字符串,甚至datetime.time(0)(午夜).
bre*_*yne 96
return "default" if x is None else x
Run Code Online (Sandbox Code Playgroud)
尝试以上.
Ash*_*ary 38
您可以使用条件表达式:
x if x is not None else some_value
Run Code Online (Sandbox Code Playgroud)
例:
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
Run Code Online (Sandbox Code Playgroud)
小智 13
x or "default"
Run Code Online (Sandbox Code Playgroud)
效果最好 - 我甚至可以使用内联函数调用,而无需执行两次或使用额外的变量:
self.lineEdit_path.setText( self.getDir(basepath) or basepath )
Run Code Online (Sandbox Code Playgroud)
我在打开Qt dialog.getExistingDirectory()和取消时使用它,它返回空字符串.