• Python基础:Python可变对象和不可变对象


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

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

    一、不可变对象

    由于Python中的变量存放的是对象引用,所以对于不可变对象而言,尽管对象本身不可变,但变量的对象引用是可变的。运用这样的机制,有时候会让人产生糊涂,似乎可变对象变化了。如下面的代码:

    1. i = 73  
    2. i += 2

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

    看看下面的代码,更能体现这点的。

    1. #因为258int对象,是不可变对象的。所以下面3个id的值都是一样的,最后一句的结果也是为True   
    2. #有点奇怪的是为什么在IDLE,和在脚本执行的结果不太一样。所以下面的代码请在脚本中执行。   
    3.   
    4. print(id(258))   
    5. a = 258  
    6. print(id(a))   
    7. b = 258  
    8. print(id(b))   
    9. print(a is b)  

    二、对于可变对象

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

    1. m=[5,9]   
    2. m+=[6]  

  • 相关阅读:
    浏览器20年图说简史
    CF1437D Solution
    CF1446B Solution
    CF1444A Solution
    CF1437C Solution
    让您的网站拥有MSDN资源库搜索功能[转摘MSDN]
    自定义web part版面变形的原因
    SPS中模板保存数据库的位置
    利用配置文件自定义站点
    VS.NET2003 开发环境 生成样式表 和 自动书写HTML对象模型
  • 原文地址:https://www.cnblogs.com/youxin/p/3059749.html
Copyright © 2020-2023  润新知