python bomb 拷貝與賦值

2021-09-13 11:51:31 字數 1299 閱讀 5252

變數

id:在記憶體中的儲存位置,id(a)

value: ==

type:資料型別

==: 判斷資料型別和值

is:判斷id,資料型別和值

li =[1,'1',6]

li1 = li #直接賦值,兩者滿足'is'

li1[1, '1', 6]

id(li)

140492002190728

id(li1)

140492002190728

li is li1

true

li2 =li.copy() #列表拷貝,另外開闢記憶體空間

li2[1, '1', 6]

li2 is li

false

li2 == li

true

所有的數值型別(布林、數字)、字串都是不可變資料型別

列表是可變資料型別

列表裡巢狀列表時,淺拷貝是拷貝內建列表的儲存位置

深拷貝會把內建列表的內容拷貝出來,重新儲存乙份

淺拷貝

li=[[1,3],'2',4]

深拷貝import copy

拷貝,賦值與銷毀

拷貝控制操作基本概念 拷貝定義了當用同型別的另乙個物件初始化本物件時做什麼。賦值定義了將乙個物件賦予同型別的另乙個物件時做什麼。折構定義了當此型別物件銷毀時做什麼。拷貝建構函式 如果乙個建構函式的第乙個引數是自身型別的引用,且任何額外引數都有預設值,則此建構函式是拷貝建構函式。合成拷貝函式 如果我們...

賦值與深淺拷貝

a 1 b a a 2 print a a print b b 列印出結果 a 2 b 1 解析 當a 1的時候,記憶體中開闢兩個空間,乙個空間存放數字1,乙個空間存放數字1的實體地址0x52446c40,當b a的時候,是將a的值賦予b,記憶體中會開闢另乙個空間也是存放數字1的實體地址0x5244...

Cpp 拷貝構造與拷貝賦值

如果乙個類包含指標形式的成員變數,系統提供的預設拷貝建構函式,只是複製了指標成員變數本身,而沒有複製該變數所指向的內容,這種拷貝方式被稱為淺拷貝。淺拷貝將導致不同物件間的資料共享,同時會在析構函式中引發 double free 異常。為此就必須自己定義乙個支援複製內容即深拷貝的拷貝建構函式。類的預設...