Будьте осторожны с цепными операциями (ч.1)
Согласно документации, если a, b, c, ..., y, z являются выражениями, а op1, op2, ..., opN - операторами сравнения, то op1 является op2 c ... y opN z эквивалентен op1 b и b op2 c и ... y opN z, за исключением того, что каждое выражение вычисляется не более одного раза.
Из-за этого мы получаем что, False is False is False эквивалентно (False is False) and (False is False) и True is False == False эквивалентно (True is False) and (False == False) и поскольку первая часть инструкции (True is False) вычисляется как False, общее выражение вычисляется как False.
Разъяснивший Python
Post #4632
330
