Python a a b和 a b的區別

2021-10-02 17:24:32 字數 306 閱讀 3984

a = a + b

建立過程是:先建立的a+b的物件放入記憶體,然後變數a指向了a+b的物件,這事實上已經改變了a原本的指向,指向了新的位址。

a += b

建立過程是:把a原本指向記憶體位址的物件的值改變成了a+b,能不能改變取決於該物件的值能不能被改變。

對於可變物件型別和不可變物件型別有不同的結果:

可變物件型別:+=改變了原本位址上物件的值,不改變原本的指向位址;=則改變了原本的指向位址,建立了新的物件,並指向新的位址

不可改變物件型別:都是改變原本的指向位址,指向新建立的物件位址

參考部落格

python a a b與a b的不同

python直譯器 python3 a a b 建立過程是 先建立的a b的物件放入記憶體,然後變數a指向了a b的物件,這事實上已經改變了a原本的指向,指向了新的位址。a b 建立過程是 把a原本指向記憶體位址的物件的值改變成了a b,能不能改變取決於該物件的值能不能被改變。對於可變物件型別和不可...

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,...