python a a b與a b的不同

2021-08-22 13:39:49 字數 823 閱讀 8971

python直譯器:python3

a = a + b

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

a += b

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

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

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

測試**:

a = [10]

b = [10]

a = a + b

a1 = [10]

b1 = [10]

a1 += b1

a的值: [10, 10]

a = 10

b = 10

a = a + b

a1 = 10

b1 = 10

a1 += b1

a的值: 20

不可變物件型別:數字,字串,元組

可變物件型別:列表,字典

可變和不可變:指的是記憶體上某個位址的物件的值能不能改變,能就變,不能就在記憶體中重新建立乙個位址放入新的值

值得提及的是:實踐中發現為什麼200的記憶體位址不會變,而300的記憶體位址會一直變?

經查閱:[-5,256],python已經快取入記憶體中了,為了方便提取和增加執行速度吧!

Python a a b和 a b的區別

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

a a b 與 a b 的區別

1 對於同樣型別的a,b來說 兩個式子執行的結果確實沒有什麼區別。但是從編譯的角度看吧 武讓說的 a b 執行的時候效率高。2 對於不同型別的a,b來說 2.1 不同型別的兩個變數在進行運算的時候,我們經常說到的是型別的轉換問題。這裡,記住兩點 一 運算過程中,低精度的型別向高精度型別轉換。二 如果...

a與framework的不同

ios中靜態庫與動態庫的區別 1.存在形式 靜態庫 a 和.framework 動態庫 dylib和.framework 2.使用上的不同 靜態庫 鏈結時,會完整的複製到可執行檔案中,被多次使用就會產生多分冗餘的拷貝。動態庫 鏈結時不複製,只在程式執行時由系統動態載入到記憶體中供程式呼叫,系統僅載入...