Python plus运算符的不一致性

时间:2011-09-28 07:29:20

标签: python operators

In [26]: l=[]

In [27]: s="asdsad"

In [28]: l+=s

In [29]: l
Out[29]: ['a', 's', 'd', 's', 'a', 'd']

然而,

In [30]: l+s
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/xiaohan/code/proteincrawler/id_crawler.py in <module>()
----> 1 
      2 
      3 
      4 
      5 

TypeError: can only concatenate list (not "str") to list

因此,'+ ='和'+'中的 + 运算符是不同的。

但我认为它们应该是相同的,因为它们都是 plus

我错了或在幕后发生了什么事?

1 个答案:

答案 0 :(得分:8)

这解释为here。复制链接:

  

这是因为+=运算符相当于调用extend方法,该方法将其参数视为通用序列,并且不强制执行类型。