我們?nèi)粘Kf的復(fù)制(自己在電腦硬盤上的復(fù)制)就是深復(fù)制(deepcopy),即將被復(fù)制對象完全再復(fù)制一遍作為獨立的新個體單獨存在。所以改變原有被復(fù)制對象不會對已經(jīng)復(fù)制出來的新對象產(chǎn)生影響。
站在用戶的角度思考問題,與客戶深入溝通,找到西區(qū)網(wǎng)站設(shè)計與西區(qū)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋西區(qū)地區(qū)。
而淺復(fù)制(copy)并不會產(chǎn)生一個獨立的對象單獨存在,他只是將原有的數(shù)據(jù)塊打上一個新標(biāo)簽,所以當(dāng)其中一個標(biāo)簽指向的數(shù)據(jù)塊就會發(fā)生變化,另一個標(biāo)簽也會隨之改變。這就和我們尋常意義上的復(fù)制有所不同了。
Python函數(shù)不能傳遞值,而是傳遞引用。如果在調(diào)用函數(shù)時要使用不可變的對象,則可以使用Python的內(nèi)置函數(shù)copy()來復(fù)制對象,然后將副本傳遞給函數(shù)。此外,還可以將參數(shù)傳遞給函數(shù)的方式改為使用關(guān)鍵字參數(shù)(keyword arguments),這樣也可以避免傳遞原始值。
賦值(=):就是創(chuàng)建了對象的一個新的引用,修改其中任意一個變量都會影響到另一個。
淺拷貝:創(chuàng)建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修改其中一個對象,另外一個也會修改改變){1,完全切片方法;2,工廠函數(shù),如list();3,copy模塊的copy()函數(shù)}
深拷貝:創(chuàng)建一個新的對象,并且遞歸的復(fù)制它所包含的對象(修改其中一個,另外一個不會改變){copy模塊的deep.deepcopy()函數(shù)}