运算符
and和
or短路,这意味着如果仅从对第一个 *** 作数求值就可以得出表达式的结果,则不对第二个 *** 作数求值。例如,如果您具有表达式
a orb并且
a计算结果为true,那么不管什么都没关系
b,表达式的结果为true,因此
b不进行计算。实际上,它们的工作方式如下:
a and b
:如果a为假,则不评估b并返回a,否则返回b。a or b
:如果a为真,则不评估b并返回a,否则返回b。
Falsey和Truey表示在布尔上下文中评估为false或true的值。
但是,在没有更好的选择的时候,这个和/或惯用语是有用的,但是现在有了更好的方法:
spam if foo==bar else eggs
和/或惯用语的问题(除了使初学者感到困惑之外)是,如果条件为真,但垃圾邮件的计算结果为假值(例如,空字符串),则会给出错误的结果。因此,您应该避免这种情况。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)