網(wǎng)站首頁 編程語言 正文
- 賦值:其實就是對象的引用(相當于取別名)。
- 淺拷貝(copy):拷貝父對象,不會拷貝對象內(nèi)部的子對象,會引用子對象。
- 深拷貝(deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對象及其子對象。
一、賦值實例
# a這個大列表是一個父對象,里面的小列表是a的一個子對象 a = [1, 2, 3, ["a", "b"]] # 賦值實例 b = a print("a:", a) print("b:", b) ## 打印結(jié)果 a: [1, 2, 3, ['a', 'b']] b: [1, 2, 3, ['a', 'b']]
解析:
b = a: 賦值引用,a 和 b 都指向同一個對象,所以得到的結(jié)果都一樣
二、淺拷貝實例
# 淺拷貝實例 a = [1, 2, 3, ["a", "b"]] c = a.copy() # 第一次打印 print("a:", a) print("c:", c) # 給a對象中的子對象添加元素 a[3].append("c") print("a:", a) print("c:", c) # 給a這個父對象添加元素 a.append(4) print("a:", a) print("c:", c) ## 打印結(jié)果 a: [1, 2, 3, ['a', 'b']] c: [1, 2, 3, ['a', 'b']] a: [1, 2, 3, ['a', 'b', 'c']] c: [1, 2, 3, ['a', 'b', 'c']] a: [1, 2, 3, ['a', 'b', 'c'], 4] c: [1, 2, 3, ['a', 'b', 'c']]
?解析:
c = a.copy(): 淺拷貝, a 和 c 是一個獨立的對象,但他們的子對象還是指向統(tǒng)一對象(是引用子對象)。
三、深拷貝實例
# 深拷貝實例 import copy a = [1, 2, 3, ["a", "b"]] d = copy.deepcopy(a) # 第一次打印 print("a:", a) print("d:", d) # 給a對象中的子對象添加元素 a[3].append("c") print("a:", a) print("d:", d) # 給a這個父對象添加元素 a.append(4) print("a:", a) print("d:", d) ## 打印結(jié)果 a: [1, 2, 3, ['a', 'b']] d: [1, 2, 3, ['a', 'b']] a: [1, 2, 3, ['a', 'b', 'c']] d: [1, 2, 3, ['a', 'b']] a: [1, 2, 3, ['a', 'b', 'c'], 4] d: [1, 2, 3, ['a', 'b']]
解析:
d = copy.deepcopy(a): 深度拷貝, d 完全拷貝了a這個父對象及其子對象,a與d兩者是完全獨立的。
原文鏈接:https://blog.csdn.net/karsa__/article/details/123506526
相關(guān)推薦
- 2023-07-22 linux自動化運維之linux腳本自動操作redis數(shù)據(jù)
- 2022-03-19 強制去除Unity自動添加的Android隱私權(quán)限_Android
- 2023-02-12 Jupyter?notebook如何實現(xiàn)打開數(shù)據(jù)集_python
- 2022-07-26 SpringMVC的流程
- 2022-09-21 Python時間序列數(shù)據(jù)的預處理方法總結(jié)_python
- 2022-09-20 Redis安全策略詳解_Redis
- 2022-03-21 oracle中commit之后進行數(shù)據(jù)回滾的方法_oracle
- 2022-04-08 從頭學習C語言之for語句和循環(huán)嵌套_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支