zoukankan      html  css  js  c++  java
  • 列出python中可变数据类型和不可变数据类型,并简述原理

    可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

    • list
    • dict
    • set
    • bytearray
    • user-defined classes (除非是特别定义的不可变)
    a = [1,2]
    b = [1,2]
    print(id(a))
    print(id(b))

    不可变类型(immutable):改变了变量的值 == 新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址), python的id() 方法让你明白

    • int
    • float
    • decimal
    • complex
    • bool
    • string
    • tuple
    • range
    • frozenset
    • bytes

    例子

    a = 3
    b = 3
    print(id(a))
    print(id(b)) # mem addr is same with a
    a = 5
    print(id(a))
    
    boolx = True
    print(id(boolx))
    boolx = False
    print(id(boolx))

    输出

    533780592600
    533780592600                                                

    533780592664

    533780191712

    533780191744
    [Program finished]
  • 相关阅读:
    ffmpeg 视频ts切片生成m3u8
    ffmpeg细节整理记录
    网页前端video播放m3u8(HLS)
    ffmpeg 常用知识点收集
    网络视频m3u8解密及ts文件合并
    DNS地址列表
    mysqladmin 命令详解
    Linux安装MySQL
    MySQL常用权限操作
    linux 常用端口
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11188732.html
Copyright © 2011-2022 走看看