Python 中 MySQL IFNULL 的等价物
在Python里,有没有一个函数可以检查返回的值是不是None?如果是的话,能让你把它设置成其他值,就像MySQL里的IFNULL
函数那样?
8 个回答
12
像这样:
x = SOME_VALUE if x is None else x
33
如果你想把所有“假值”(比如 None
、0
、""
、[]
、False
等等)转换成一个特定的值,而让其他的值保持不变,你可以用 or
这个方法。举个例子:
print (x or default_value)
这段代码会打印出 x
的值,如果 x
是“真值”,如果 x
是“假值”,就会打印出 default_value
的值。
我提到这个是因为 IFNULL
通常用来清理数据库中布尔值和数字列里的空值,这可能正是你或其他人想要的效果。当然,如果你想把 None
和 0
、False
等等区分开来,这个方法就不适用了。
16
其实不是这样,因为你不能重新绑定参数。
if foo is None:
foo = 42
或者
def ifnull(var, val):
if var is None:
return val
return var
foo = ifnull(foo, 42)