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