优先级高到低为:not and or
(1) 使用and时,在布尔环境中从左到右演算表达式的值
0、‘’ 、[] 、{}、None在布尔环境中为假,其他任何东西都为真。
1. 如果布尔环境中的所有值都为真,那么and返回最后一个值。在这个例子中,and演算‘a'的值为真,然后是’b' 的演算值为真,最终返回 ‘b'
2. 如果布尔环境中的某个值为假,则and返回第一个假值。在这个例子中,’‘ 是第一个假值
3. 所有值都为真,所以and返回最后一个真值,’c'
(2) 使用or时,在布尔环境中从左到右演算值。
1.如果有一个值为真,or立刻返回该值。
2. or 演算‘’的值为假,然后演算‘b'的值为真,于是返回 ’b'
3. 如果所有的值都为假,or返回最后一个假值。
4. 注意 or在布尔环境中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值。如果某些值具有副作用,这种特性就非常重要了,在这里,函数sidefx永远不会被调用,因为 or 演算 ‘a' 的值为真,所以紧接着就立刻返回 ’a'了。
版权声明:本文为博主原创文章,未经博主允许不得转载。