and
代码现象
param = 'a' and 'b'
print(param)
>> b
param = '' and 'b'
>> ''
param = 'a' and ''
>> ''
param = '' and [] and None
>> ''
# 注意 '' 标示空字符串,类型是字符串
原理
and表达式叫做布尔上下文,执行过程是从左向右演算表达式的值。只要遇到假就返回第一个假值,0、’ '、[ ]、( )、{ }、None 在布尔上下文中都为假。当表达式为真的时候返回最后一个真值。
or
代码现象
param = 'a' or 'b'
print(param)
>> a
param = '' or 'b'
>> b
param = 'a' or ''
>> a
param = '' or [] or {}
>> {}
# dict or {} 常用于完善返回值,当dict可能为空时,可以使用or保证返回值是字典,而不是返回None
原理
同样从左向右执行or布尔上下文,直到遇到真值就返回第一个真值。遇到假继续执行,如果表达式为假,则返回最后一个假值。