如果在 Python 中为 None,则返回默认值
Return a default value if None in Python
如果在 Python 中为 None,则使用条件表达式返回默认值,例如
return "default value" if my_var is None else my_var
. 如果变量存储 ,条件表达式将返回默认值None
,否则返回变量。
主程序
# 👇️ return default value if variable is None def example(): my_var = None return "default value" if my_var is None else my_var print(example()) # 👉️ "default value" # --------------------------------------------- # 👇️ return default value if variable is None my_var = None my_var = "default value" if my_var is None else my_var print(my_var) # 👉️ default value
条件表达式与语句非常相似if/else
。
在示例中,我们检查变量是否存储None
,如果是,我们返回字符串default value
,否则返回变量。
您可以使用此方法从函数返回默认值
None
,或者将变量重新分配给默认值(如果它当前存储None
.另一种方法是使用布尔or
运算符。
主程序
# 👇️ return default value if variable is None def example(): my_var = None return my_var or "default value" print(example()) # 👉️ "default value" # --------------------------------------------- # 👇️ return default value if variable is None my_var = None my_var = my_var or "default value" print(my_var) # 👉️ "default value"
如果表达式x or y
为真,则返回左边的值,否则返回右边的值。
主程序
# 👇️ default value print(None or 'default value') # 👇️ hello print('hello' or 'default value')
但是,这种方法不会明确检查None
.
如果左边的值是假的,布尔
or
运算符将返回右边的值。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
因此,如果左侧的值是上述任何虚假值,则返回右侧的值。
主程序
print(0 or 'default value') # 👉️ default value print("" or 'default value') # 👉️ default value
这可能适合也可能不适合您的用例。
如果您只想检查None
,请使用第一个代码片段中的条件表达式。