這兩者貌似結果是一樣的,但是實際的執行結果卻大相徑庭
直接上**:
def
add(a,b)
:#a = a + b
a+=b #可變資料型別 在原有的資料位址上進行了拼接
return a
defadd2
(a,b)
: a = a + b
#此時的意義是將a b的內容進行拼接之後賦給了另乙個叫做a的位址,兩個變數的名稱相同但是是乙個不同的位址
#a+=b
return a
a =[1,
2]b =[3,
4]print
('1. id(a)=',id
(a))
c = add(a,b)
print
('2. id(a)=',id
(a))
print
('3. id(c)=',id
(c))
print
(c)#[1,2,3,4]
print
(a,b)
#[1,2,3,4] [3,4]
執行結果:
id(a)= 2360073848712
id(a)= 2360073848712
如果採用a = a + b的方式,則是將a和b拼接之後賦值給另乙個叫a的變數,此時的a並未變化
def
add(a,b)
:#a = a + b
a+=b #可變資料型別 在原有的資料位址上進行了拼接
return a
defadd2
(a,b)
: a = a + b
#此時的意義是將a b的內容進行拼接之後賦給了另乙個叫做a的位址,兩個變數的名稱相同但是是乙個不同的位址
#a+=b
return a
a =[1,
2]b =[3,
4]print
('1. id(a)=',id
(a))
c = add2(a,b)
print
('2. id(a)=',id
(a))
print
('3. id(c)=',id
(c))
print
(c)#[1,2,3,4]
print
(a,b)
#[1,2,3,4] [3,4]
執行結果:
id(a)= 2888459618184
id(a)= 2888459618184
a a b和a b的區別
本文的測試環境是vs2008,測試語言是c 以前我一直認為a a b a b沒有什麼區別,網上的一些人也認為這兩句沒有什麼很大的區別。但是今天在用c 中checked關鍵字檢查溢位的程式中發現用前者編譯不能通過,後者可以,帶著這個疑問,我又查了一些資料,終於有了乙個合理的解釋,如果有錯誤,希望大神指...
a a b和a b的區別
首先,高興啊高興,因為今天問小葉這個問題,他說沒有區別,哈哈,但是呢,我還是查到了區別,吼吼 因為,是他疏忽了。哦哦 其次,謝謝武讓的講解。下面進入正題 1 對於同樣型別的a,b來說 兩個式子執行的結果確實沒有什麼區別。但是從編譯的角度看吧 武讓說的 a b 執行的時候效率高。2 對於不同型別的a,...
python 中a b與a a b有什麼區別
看到乙個比較有意思的問題,就是python中a b與a a b有什麼區別 總體上講,a b是改變了a原始的值,而a a b是計算出a b後,a在指向那個值。這個也跟a和b的型別有關。當a和b是int或者string不可改變的時候,二者效果一樣。a 1,2,3,4 b a a 5 a,b 1,2,3,...