python中使用a = a + a創建了一個新的變量a,覆蓋了之前的變量a。而使用a += a 則是直接對原變量 a 進行操作。下面通過幾個例子進行說明:
1. a = [1,2,3] print(id(a))#打印內存地址 a+=a print(a) print(id(a)) 輸出結果: 1238454553032 [1, 2, 3, 1, 2, 3] 1238454553032
2. a = [1,2,3] print(id(a)) a = a + a print(a) print(id(a)) 輸出結果: 1238454620232 [1, 2, 3, 1, 2, 3] 1238454553032
以上兩個只看結果沒啥區別,但看內存地址還是可以看出區別來的,接下來繼續看:
3.
a = [1,2,3]
print(id(a))
def add(arr):
arr += arr
print(id(a))
add(a)
print(a)
print(id(a))
輸出結果:
1238454620232
1238454620232
[1, 2, 3, 1, 2, 3]
1238454620232
3.
a = [1,2,3]
print(id(a))
def add(arr):
arr = arr + arr
print(id(arr))
add(a)
print(a)
print(id(a))
輸出結果:
1238454553032
1238454620232
[1, 2, 3]
1238454553032
兩者區別: =的使用會直接創建一個新的變量,而+=則是直接對原變量進行操作。
