什么';这个python语法是怎么回事?(c==s中的c)

什么';这个python语法是怎么回事?(c==s中的c),python,python-2.7,Python,Python 2.7,有人给我看了这个奇怪的python语法示例。[4]为什么起作用 我希望它的评估结果是[5]或[6],两者都不起作用。是否存在一些不应该出现的过早优化 In [1]: s = 'abcd' In [2]: c = 'b' In [3]: c in s Out[3]: True In [4]: c == c in s Out[4]: True In [5]: True in s --------------------------------------------------------

有人给我看了这个奇怪的python语法示例。[4]为什么起作用

我希望它的评估结果是[5]或[6],两者都不起作用。是否存在一些不应该出现的过早优化

In [1]: s = 'abcd'

In [2]: c = 'b'

In [3]: c in s
 Out[3]: True

In [4]: c == c in s
Out[4]: True

In [5]: True in s
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-e00149345694> in <module>()
----> 1 True in s

TypeError: 'in <string>' requires string as left operand, not bool

In [6]: c == True
Out[6]: False
[1]中的
s='abcd'
在[2]中:c='b'
In[3]:c在s中
Out[3]:正确
在[4]中:c==c在s中
Out[4]:正确
在[5]中:在s中为真
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1在s中为真
TypeError:“in”需要字符串作为左操作数,而不是bool
在[6]中:c==True
Out[6]:假

这与允许python链接多个运算符(如

>>> 0 < 1 < 2
True
>>> def foo(x):
...     print "Called foo(%d)" % x
...     return x
...
>>> print 0 < foo(1) < 2
Called foo(1)
True