Порядок операций: почему ('1' in '111' == True) возвращает False

1,00
р.
В этом вопросе встречается код, который в упрощенном виде можно записать так:
>>> '1' in '111' == True False
Почему так происходит? Ведь согласно таблице "Operator precedence" и in и == имеют одинаковый приоритет и должно выполняться слева направо.
Т.е. логично предположить что данная конструкция равнозначна:
>>> ('1' in '111') == True True

Ответ
Похоже данная конструкция воспринимается как "chained comparison" наподобие:
a < b <= c <br>что эквивалентно
a < b and b <= c <br>т.е.
'1' in '111' == True
будет обрабатываться как:
'1' in '111' and '111' == True
проверим догадку:
>>> '1' in '111' == '111' True