我有以下代码打破:
l = []
tup = ('a', 'b')
l = l + tup
,它给出了以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "tuple") to list
但下面的代码运行
l = []
tup = ('a','b')
l += tup
没有任何错误。
我一直认为l + =与l = l +
相同这里发生了什么事?
答案 0 :(得分:1)
问题是l = l +
正在调用list
__add__
方法,而l +=
正在调用__iadd__
方法,这是地方(相当于调用extend
方法)。