Python plus运算符的不一致性

xia*_*012 2 python operators

In [26]: l=[]

In [27]: s="asdsad"

In [28]: l+=s

In [29]: l
Out[29]: ['a', 's', 'd', 's', 'a', 'd']
Run Code Online (Sandbox Code Playgroud)

然而,

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
Run Code Online (Sandbox Code Playgroud)

所以,'+ ='和'+'中的+运算符是不同的.

但我认为它们应该是一样的,因为它们都是加号

我错了还是在幕后发生了什么?

tas*_*oor 8

在这里解释.复制链接:

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