在python解释器中,
min(True,False)==False
max(True,False)==True
有设计保证吗?
True
等于1
并且False
是0
似乎,至少在 CPython 中,bool
子类int
。因此,您可以这样做:
>>> abs(False)
0
>>> abs(True)
1
和:
>>> False < True
True
>>> True > False
True
我猜测max
并min
使用比较运算符:
>>> cmp(False, True)
-1
>>> cmp(True, False)
1
>>> cmp(False, False)
0
>>> cmp(True, True)
0
在 python 2.x 中,这不能保证,因为您可以覆盖 True 和 False:
>>> False = 23
>>> max(True, False)
23
但是,如果您不指定 True 或 False,则 Language Design 保证 Booleans 子类 int 的值为 0、1、yes。(并且在py3中,True和False是保留字,所以不能做上面的)