zoukankan      html  css  js  c++  java
  • Python-不可变对象和可变对象的理解

    不可变对象:除列表、字典外其他均为可变对象

    可变对象:列表、字典

    1)不可变类型指的是变量指向的值是不能更改的,也就是这个内存地址只存放这个值。修改变量值的时候,其实是在内存中申请一块新的内存地址,创建了一个新的对象,并不是在原来的地址上做修改。

    str内存地址38955248处的值在未进行垃圾回收前一直是'abc',str2相当于是开辟了一块新的内存地址32116824来存放。

    str='abc'
    print id(str)
    #修改str的值,str2和str的内存地址是不一样的
    str2=str+'d'
    print id(str2),id(str)
    #不会影响str的值
    print str

    运行结果:

    38955248
    32116824 38955248
    abc

    2)可变类型指的是变量指向的内存地址上的值是可以改变的,即可以在原来的内存地址上对变量进行操作。

    列表a在内存地址38379336上存放的值是[1, 2, 3] ,当增加一个地元素的时候,其内存地址没有发生变化,也就是说是在原有的内存地址上将值修改的。

    a = [1, 2, 3]
    print id(a)
    a.append(4)
    print id(a)

    运行结果:

    38379336
    38379336

  • 相关阅读:
    java:字符串(下)
    java字符串(上)
    Java流程控制:循环语句
    JAVA学习笔记(二十三)
    JAVA学习笔记(二十二)
    JAVA学习笔记(二十一)
    JAVA学习笔记(二十)
    JAVA学习笔记(十九)
    JAVA学习笔记(十八)
    JAVA学习笔记(十七)
  • 原文地址:https://www.cnblogs.com/yan-xiang/p/6593603.html
Copyright © 2011-2022 走看看