Python相当于MySQL的IFNULL

sup*_*er9 9 python

在Python中是否有一个函数检查返回的值是否为None,如果是,是否允许您将其设置为另一个值,如IFNULLMySQL中的函数?

vor*_*ity 12

如果你想所有的"falsy"值(即转换None,0,"",[],False通过非接触等)为特定值,让一切,你可以使用or.例如:

print (x or default_value)
Run Code Online (Sandbox Code Playgroud)

将打印xif的真值,而default_valueif 的值x是假的.

我之所以提到这是因为IFNULL通常以这种方式用于清理数据库中布尔值和数值列中的空值,因此可能是您或其他人所追求的.很显然,如果你要正确对待None不同来0,False等这是不行的.


Ign*_*ams 9

不是真的,因为你不能重新绑定论点.

if foo is None:
  foo = 42
Run Code Online (Sandbox Code Playgroud)

要么

def ifnull(var, val):
  if var is None:
    return val
  return var

foo = ifnull(foo, 42)
Run Code Online (Sandbox Code Playgroud)

  • @IonutHulub:不,因为很多非`'`的值都是假的. (3认同)
  • `ifnull()` 的主体也可以缩短为 `val if var is None else var`。 (2认同)
  • 实际上,它可以缩短为`return var或val`。 (2认同)

Ted*_*ddy 5

像这样:

x = SOME_VALUE if x is None else x
Run Code Online (Sandbox Code Playgroud)