我试图弄清楚'or'运算符在非布尔型变量上使用时的工作方式。特别是,它似乎是不可交换的,令我感到困惑。 “或”不应该互换吗?
据我所知,它似乎正在实施:
a或b = a,除非a = null或0,则a或b = b。
示例:
> 0 or 5
5
> 5 or 3
5
> 3 or 5
3
> '' or 5
5
> 5 or ''
5
> 'ab' or 'cd'
'ab'
> 'cd' or 'ab'
'cd'
> '' or 'cd'
'cd'
答案 0 :(得分:0)
来自the docs:
表达式
x or y
首先计算x;如果x为true,则返回其值;否则,将评估y并返回结果值。[...]
请注意,
and
和or
都没有限制值和类型,它们返回到False
和True
,而是返回最后一个求值的参数。