- 论坛徽章:
- 0
|
这个理解起来就是说,如果是一个容器(你可以理解为一个自定义的大型数据),而非系统数据类型,比如int float什么的,那么在拷贝的时候容器的大小是无法估量的。就像你在C/C++里面传递一个数组一样,你不可能把数整个拷贝过去,而仅仅传递一个指针.python中也一样,当容器间的拷贝时,只是产生类似指针一样的地址指向。
第一次实验:简单的=号赋值
>>> person=['name', ['savings', 100.00]] //这里是一个容器
>>> hubby=person //识别为类似指针
>>> wifey=person
>>> hubby[0]='abc'
>>> wifey[1][1]=789
>>> person,hubby,wifey
(['abc', ['savings', 789]], ['abc', ['savings', 789]], ['abc', ['savings', 789]]) /不相信可以用id()函数查看,内部地址一样
第二次实验:函数返回
>>> person=['name', ['savings', 100.00]]
>>> hubby = person[:] //一个函数返回,进行一个个元素拷贝。'name'是一个系统类型,被独立拷贝.而后者就是所谓的容器,产生 //一个引用
>>> hubby[0]='abc'
>>> hubby[1][1]=789
>>> person,hubby
(['name', ['savings', 789]], ['abc', ['savings', 789]]) //第一个相当深拷贝了,所以不同。 |
|