zoukankan      html  css  js  c++  java
  • 【Python】可变对象和不可变对象

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

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

    一、不可变对象

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

    image

    ECAA08~1

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

    image

    输出:

           image

    二、可变对象

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

    image

    562FC5~1

    三、函数参数

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

    image

       输出结果:

    image

    总结:

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

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

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

    562FC5~1

        

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

      ECAA08~1

     

  • 相关阅读:
    石墨烯
    spring 安装
    orm 对象关系映射
    刷机问题
    环境必备
    spring 例子
    刷系统——黑屏问题
    android 文件下载
    c# 事件处理
    回忆测试广告理论
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3724194.html
Copyright © 2011-2022 走看看