Оператор Python in (__contains__) возвращает значение типа bool, значение которого не равно True или False

Как и ожидалось, 1 не содержится в пустом кортеже

>>> 1 in ()
False

ноFalse возвращаемое значение не равноFalse

>>> 1 in () == False
False

Глядя на это по-другому,in оператор возвращаетbool который не является ниTrue ни:False

>>> type(1 in ())

>>> 1 in () == True, 1 in () == False
(False, False)

Однако нормальное поведение возобновляется, если исходное выражение заключено в скобки

>>> (1 in ()) == False
True

или его значение хранится в переменной

>>> value = 1 in ()
>>> value == False
True

Такое поведение наблюдается как в Python 2, так и в Python 3.

Можете ли вы объяснить, что происходит?

Ответы на вопрос(1)

Ваш ответ на вопрос