В Python3,
a = b = 3
a is None == b is None
возвращает False, но
(a is None) == (b is None)
возвращает значение True. Поэтому я предполагал бы, основываясь только на этом примере: == имеет приоритет.
Тем не мение,
a = b = None
a is None == b is None
возвращает значение True. А также
(a is None) == (b is None)
возвращает значение True. Но
a is (None == b) is None
возвращает False. В этом случае казалось бы, что имеет приоритет над ==.
Чтобы привести еще один пример, и это выражение не предназначено для чего-либо, но несите со мной, пожалуйста. Если я говорю
None is None == None
он возвращает True. Но оба из них возвращаются False.
None is (None == None)
(None is None) == None
Настолько ясно, что Python не оценивает их с некоторым строгим приоритетом, но я запутался в том, что происходит. Как он оценивает это выражение с помощью двух разных операторов, но отличается от любого порядка?