抱歉,我无法想出更具描述性的标题。这不是非常重要,而是我发现在Python 3.8(至少)中存在的奇怪习惯,并且我认为我不是唯一一个注意到这一点的人,也可能有一个合理的解释:
>>> 'foo' in 'foobar' == True
False
这也可以反过来实现:
>>> True == 'foo' in 'foobar'
False
然而,从逻辑上讲,我认为这应该是正确的,因为
>>> 'foo' in 'foobar'
True
>>> True == True
True
我猜测这是某种操作顺序错误,但当我尝试对其进行分组时,出现了问题。
>>> ('foo' in 'foobar') == True
True
>>> 'foo' in ('foobar' == True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
我现在主要是非常好奇,如果有人能够解释一下这个问题那就太好了!
'foo' in 'foobar' in 'foobarbaz'
(True
),而无论哪种方式添加括号都会导致类型错误。 - Caleb Stanford