これはboolに直接実装されていません。True <2はどのように実装されていますか?
>>> 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
だから、どのようにTrue < 2
は、Python 2に実装されていますか?
整数への暗黙的な変換によって、おそらく? – Carcigenicate
このトリックは面白いかもしれません: '[exprFalse、exprTrue] [condition]'は 'exprTrue if else else exprFalse'と同等です。 – BlackBear
@BlackBearそれ以外は評価されません。 '' '' '' '' '' '' '' '' '' '' '' '' ''条件を満たしていれば '' True ''を返します。 – immibis