我发现 Python 的in操作符有奇怪的行为
d = {}
'k' in d == False # False!
Run Code Online (Sandbox Code Playgroud)
我认为这是因为优先级:
('k' in d) == False # True, it's okay
'k' in (d == False) # Error, it's also okay
Run Code Online (Sandbox Code Playgroud)
但是,什么优先级评估以下表达式呢?
d = {}
'k' in d == False
Run Code Online (Sandbox Code Playgroud)
如果是因为优先级错误,为什么它不会触发错误,例如:
'k' in (d == False)
Run Code Online (Sandbox Code Playgroud)
换句话说,这个表达式在 Python 的底层发生了什么?
'k' in d == False
Run Code Online (Sandbox Code Playgroud) python ×1