我对何时应该使用布尔运算符与按位运算符感到困惑
and
&
or
|
有人能启发我何时使用每种药物,何时使用一种药物会影响我的结果?
以下是一些准则:
短路行为在这样的表达式中很有用:
if x is not None and x.foo == 42: # ...
按位运算&符将无法正常工作,因为总是会评估双方,即AttributeError: 'NoneType' object has no attribute 'foo'。当你使用布尔and运算符时,如果第一个为False,则不计算第二个表达式。同样or,如果第一个参数为True,则不评估第二个参数。
AttributeError: 'NoneType' object has no attribute 'foo'
True