它并没有直接实现在bool上。
>>> True.__lt__(2)
AttributeError: 'bool' object has no attribute '__lt__'
而且显然也没有在 int
上实现:
>>> super(bool, True).__lt__(2)
AttributeError: 'super' object has no attribute '__lt__'
对于控制操作的 2
,没有 __lt__
的反射版本,并且由于 int
类型不是 bool
的子类,因此这永远不会起作用。
Python 3 的表现如预期:
>>> True.__lt__(2)
True
那么,在Python 2中,True < 2
是如何实现的呢?
[exprFalse, exprTrue][condition]
等同于exprTrue if condition else exprFalse
。 - BlackBearprint("True") if condition else print("False")
与[print("False"), print("True")][condition]
。 - user253751