一、python中变量的赋值

  python中的数据类型分为可变数据类型(字符串、数值、布尔型)、不可变数据类型(列表、字典、集合)。
  不可变数据类型的赋值,都只是对象的引用,不会开辟新的内存空间;可变数值类型的赋值,则会开辟新的内存空间。如果可变数据类型
中包含有不可变数据类型,则可变数据类型部分也不会开辟新的空间。如下:

 

二、浅拷贝深拷贝

  对于不可变数据类型而言,无论深拷贝和浅拷贝,都不会开辟新的内存空间。只是对可变数据类型才有深浅拷贝之分。

  1、浅拷贝

    结论:浅拷贝只拷贝最外面一层,即只对最外面的数据分配内存,但是数据内层的可变数据类型对象不会分配新的空间,还是指向旧的数据对象。

  2、深拷贝

    结论:深拷贝不管内层有多少个嵌套的可变数据类型,都会单独分配内存空间。

  例子:

               

 

 

 

  3、例外--元组

                

 

 

   元组只有深拷贝才会分配新的内存空间,浅拷贝会不会分配新内存。

 

三、is和==

  结论:is是判断变量指向的对象是不是同一个,==是判断指向对象的值是否相等。

                                  

 

 

[1] 参考链接:https://mp.weixin.qq.com/s?__biz=MzU0NjgzMDIxMQ==&mid=2247569389&idx=4&sn=7f93a257c597821bb55da3e2637a3f3d&chksm=fb542d01cc23a4178b83617a01e933494ca6274dd2086baf2bd0354ac30637cc9af674458116&scene=27

 posted on 2023-03-22 22:55  佩剑君子  阅读(125)  评论(0编辑  收藏  举报