CC柴 发表于 2018-7-25 19:44:54

召唤大法

小可爱哟 发表于 2018-7-26 11:09:20

不知道。。我感觉我面对类对象我就好像感觉不会再爱了 爱的痛了 痛的哭了 哭的累了{:10_266:}

思索与猫 发表于 2018-7-26 11:34:11

是指针吧

学学看看 发表于 2018-7-26 12:50:48

吾乃段王爷 发表于 2018-7-27 13:33:51

楼主好人,支持楼主!

冰封雪舞 发表于 2018-7-27 16:36:47

xiamizhouzhou

wxfnb 发表于 2018-7-29 13:43:29

aaaaaaaaaaaaaa

320848499 发表于 2018-7-30 12:58:45

我又去看看相关的资料
发现和楼主所说的不一样
进行了相应的尝试
>>> list1 =
>>> list2 = list1.copy()
>>> list1 = 0
>>> print(list1)

>>> print(list2)


也可以使用内置函数 id() ,发现 list1和 list2 指向内存中同一个对象
>>> list1 = [, 3, '清明']
>>> list2 = list1.copy()
>>> list1 = 5
>>> print(list1)
[, 3, '清明']
>>> print(list2)
[, 3, '清明']
>>> list1.append(10)
>>> print(list1)
[, 3, '清明', 10]
>>> print(list2)
[, 3, '清明']

>>> list1 = [, 3, '清明']
>>> list2 = list1[:]
>>> list1 = "蝶恋花"
>>> print(list1)
[['蝶恋花', 2], 3, '清明']
>>> print(list2)
[['蝶恋花', 2], 3, '清明']
>>> list1 = [, 3, '清明']
>>> list2 = list1[:]
>>> list1 = "对父对象的子对象进行更改"
>>> print(list1)
[['对父对象的子对象进行更改', 2], 3, '清明']
>>> print(list2)
[['对父对象的子对象进行更改', 2], 3, '清明']
>>> list1.append("对父对象进行更改")
>>> print(list1)
[['对父对象的子对象进行更改', 2], 3, '清明', '对父对象进行更改']
>>> print(list2)
[['对父对象的子对象进行更改', 2], 3, '清明']

赋值不是浅拷贝。
赋值:对象的引用(别名)。用一个变量给另一个变量赋值,其实就是给当前内存中的对象增加一个“标签”而已。对象赋值实际上是对象的引用。当创建一个变量,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用。

浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。如果原始对象的父对象改变,而子对象不变,拷贝得到的父对象不会跟着改变;如果原始对象的父对象里的子对象改变,则拷贝得到的父对象的字对象也会跟着改变。(浅拷贝:拷贝组合对象,不拷贝子对象)
常见的浅拷贝有:切片操作(mylist2 =mylist1[:])、工厂函数、对象的copy()方法(mylist2 =mylist1.copy())、copy模块中的copy函数

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。原始对象的改变不会造成深拷贝里任何子元素的改变

有的地方我也表述的不是很到位。

xyy123 发表于 2018-7-30 13:33:44

很棒才开始学习

claws0n 发表于 2018-7-31 01:54:28

不知道,所以看看

紫炎狂电 发表于 2018-8-2 16:31:14

看一下感觉是必要学习的东西

MisterW 发表于 2018-8-20 14:59:15

看看

archlzy 发表于 2018-8-20 15:12:38

回复看秘密

lllllhhhh 发表于 2018-8-21 13:37:37

地址

jishiben 发表于 2018-8-21 14:40:01

学习

我爱鱼C! 发表于 2018-9-7 20:59:25

233

123Marchapril 发表于 2021-3-31 23:08:08

坚持学习!

zwj2007jay 发表于 2022-10-14 17:50:07

想看
页: 1 [2]
查看完整版本: 【啥?我的墙头草“枯萎”了!】Python的对象