在比较布尔值时,我注意到了一些奇怪的行为:
>>> '1' in '123'
True
>>> '1' in '123' == True
False
我认为这可能是与操作顺序有关的问题,但是
>>> '1' in ('123' == True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
>>> ('1' in '123') == True
True
或者可能x in y
实际上没有返回布尔值,但是
>>> type('1' in '123') is type(True)
True
有人可以解释一下吗?这是一个错误吗? (在python2.7和python3.5中测试过。)