还有什么其他用例,
简明(因此一目了然,因此很清晰,因为毕竟它根本 不会 牺牲可读性!),任何时候您都需要检查某件事,或者使用某件事(如果是真的话),或者使用其他值(如果那话)是假的(即对and
-扭转它or
-我 很 刻意避免了实际的关键字,或最喜欢True
和False
,因为我说的 每一个 对象,不只是bool
- !)。
任何计算机屏幕上的垂直空间都是有限的,并且可以选择,最好将其花在有用的可读性辅助工具(文档字符串,注释,策略性地将空行分隔成块等)上,而不是例如旋转以下行:
inverses = [x and 1.0/x for x in values]
一分为六,例如:
inverses = []
for x in values:
if x:
inverses.append(1.0/x)
else:
inverses.append(x)
或更多局促版本。
和/或这种不太直观的实现的基本原理是什么?
远从“直观”,初学者经常是由事实:一些语言(如标准帕斯卡)并绊倒 没有 指定评估顺序和短路的性质and
和or
; 的的Turbo Pascal和语言标准,早在一天做出的Turbo所有时代最流行的方言帕斯卡之间的区别之一是正是涡轮增压实施and
和or
很多像Python后来才(和C语言做早…) 。