zoukankan      html  css  js  c++  java
  • Python基础:Python可变对象和不可变对象

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

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

    一、不可变对象

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

    Java代码  收藏代码
    1. i = 73  
    2. i += 2  


     

     

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

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

     

    Java代码  收藏代码
    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)  

     

     

     

     

    二、对于可变对象

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

    Python代码  收藏代码
    1. m=[5,9]  
    2. m+=[6]  

     

     


  • 相关阅读:
    内存溢出和内存泄漏的区别
    测试管理三要素(人员、过程和技术)
    面试可提问的6个问题
    弱网测试(二)
    js捕获错误
    TortoiseGit自动记住用户名密码的方法
    win7 "com surrogate“ 已停止工作的解决办法
    仿百度图片毛玻璃效果
    毛玻璃效果
    vimium快捷键列表
  • 原文地址:https://www.cnblogs.com/daichangya/p/12958506.html
Copyright © 2011-2022 走看看