À partir de la docs:
x < y <= z est équivalent à x < y et y <= z, sauf que y est
évaluées qu'une seule fois (mais dans les deux cas, z n'est pas évaluée lors de l'
x < y est fausse).
Dans votre cas True == False is False
est équivalent à True == False and False is False
comme la première condition est - False
donc c'courts-circuits et de revenir False
.
>>> dis.dis(lambda : True == False is False)
1 0 LOAD_GLOBAL 0 (True)
3 LOAD_GLOBAL 1 (False)
6 DUP_TOP
7 ROT_THREE
8 COMPARE_OP 2 (==)
11 JUMP_IF_FALSE_OR_POP 21 <---------this step
14 LOAD_GLOBAL 1 (False)
17 COMPARE_OP 8 (is)
20 RETURN_VALUE
>> 21 ROT_TWO
22 POP_TOP
23 RETURN_VALUE