3 ms·
It's not a matter of operator precedence for two reasons: 1) "in" and "is" have same precedence, and group left to right (see https://docs.python.org/3/referen
by vanni 6y ago
It's not a matter of operator precedence for two reasons:
1) "in" and "is" have same precedence, and group left to right (see https://docs.python.org/3/reference/expressions.html#operator-precedence https://docs.python.org/3/reference/expressions.html#operato...)
2) you'll have runtime error:
In [1]: def c():
...: return (1 in ([1,2,3] is True))
In [2]: c()
...
TypeError: argument of type 'bool' is not iterable
It seems related to CPython bytecode compiler implementation, the two functions are parsed in a different way, parentheses make the compiler go on a different path... but I'd like to understand why, without diving into CPython source code :) Anyone?