
1 Jakarta May 9, 2021 python 深拷贝 浅拷贝 |
2 mcoo1997 May 9, 2021 via Android import copy copy.deepcopy(cc) |
3 jmc891205 May 9, 2021 cc = dict(dd) |
4 di94sh May 9, 2021 via iPhone python 基础知识 可变对象与不可变对象 |
5 mostkia May 9, 2021 一般的赋值操作,只是拷贝了目标对象的一个内存地址的引用,类似安装的程序,你只拷贝了一个快捷方式,程序被删了或改变了,所有的快捷方式都会跟着失效变动,js 语言也有这类问题,尝试用深拷贝。 |
6 ch2 May 9, 2021 c#+js+python 都是这样 |
7 xiri May 9, 2021 改成 cc=dd.copy() 就行了,这是很基础的问题,深浅拷贝 |
8 meteordragon OP 感谢各位前辈,之前真没注意过这个问题 |
9 jotpot May 9, 2021 确实是小白。所有的编程语言都有引用和 clone 的问题 |
10 nightwitch May 9, 2021 引用语义和值语义的差别,不同语言有不同的倾向。 |
11 muzuiget May 10, 2021 引用问题,建议把基础部分重看一次。 |
12 littlewey May 10, 2021 via iPhone 看一下 id(cc) id(dd) |
13 wd May 10, 2021 via iPhone 感觉隔一段时间就有人来这里说说这个问题... |
14 HashV2 May 10, 2021 我一周看到三四次这个问题了,在不同的语言节点。。 |
15 no1xsyzy May 10, 2021 应该不算深浅拷贝问题,而是拷贝与引用的问题。 但我觉得你的需求更大可能应该写成 cc = {**dd, "c":"3"} 展开式浅拷贝同时进行修改是非常好用的糖 @jotpot 略暴言。C 语言没有引用与 clone 的问题,都是 clone,只不过 clone 的可能是指针(地址)。你若是非要传参传 struct 而不是 struct* 也给你全量拷贝了(通常没人这么用罢了)。Pascal 类似。 函数式语言也不会遇到这个问题,因为全都不可变了,就没引用和 clone 的差异了。 |
16 Kilerd May 10, 2021 这是 python 有史以来的 bug,建议换一门语言以避免同样的 bug |
17 RRRoger May 10, 2021 百度谷歌随便一搜就有解决方案 |
18 charlie21 May 10, 2021 via iPhone |
19 ddzzhen May 10, 2021 via Android 赋值操作是链接,占用内存不增加 |
20 xiaoxinshiwo May 11, 2021 [捂眼睛] |