首页 > 编程语言 > 详细

【Python】可变对象和不可变对象

时间:2014-05-13 20:08:08      阅读:812      评论:0      收藏:0      [点我收藏+]

Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容是可变的,例如list。而不可变的对象则相反,表示其内容不可变。

  • 不可变对象:int,string,float,tuple
  • 可变对象   :list,dictionary

一、不可变对象

由于Python中的变量存放的是对象引用,所以对于不可变对象而言,尽管对象本身不可变,但变量的对象引用是可变的。

bubuko.com,布布扣

bubuko.com,布布扣

从上面得知,不可变的对象的特征没有变,依然是不可变对象,变的只是创建了新对象,改变了变量的对象引用。

bubuko.com,布布扣

输出:

       bubuko.com,布布扣

二、可变对象

其对象的内容是可以变化的。当对象的内容发生变化时,变量的对象引用是不会变化的。如下面的例子:

bubuko.com,布布扣

bubuko.com,布布扣

三、函数参数

     Python函数参数对于可变参数,函数内对参数的改变会影响到原始对象,对不可变参数,函数内对参数的改变不会影响到原始参数

bubuko.com,布布扣

   输出结果:

bubuko.com,布布扣

总结:

      函数通过引用调用,只有可变对象函数内对参数的改变会影响到原始的对象,对于不可变对象来说,函数内对

参数的改变,不会影响到原始的对象,具体原因:

      1、可变对象,参数图,改变的是可变对象

bubuko.com,布布扣

    

       2、不可变对象,改变的是函数内变量的指向对象

  bubuko.com,布布扣

 

【Python】可变对象和不可变对象,布布扣,bubuko.com

【Python】可变对象和不可变对象

原文:http://www.cnblogs.com/luosongchao/p/3724194.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!