zoukankan      html  css  js  c++  java
  • Python可变与不可变类型及垃圾回收机制

    1. 可变与不可变类型

    1.1  可变类型

      在id不变的情况下,value可以改变,则称之为可变类型。列表、字典与集合是可变的。

    l1 = [1,2,3,4,5]
    print(id(l1))
    l1[1] = 520             #改变列表元素
    print(id(l1))
    result:
    1700748379208           #id不变
    1700748379208
    
    
    info = {'name':'言念君子'}
    print(id(info))
    info['name']='温润如玉'
    print(id(info))
    result:
    1953426847424
    1953426847424
    
    
    s1 = {'a','b','c','d'}
    print(id(s1))
    s1.add('zxj')
    print(id(s1))
    result:
    2428508547336
    2428508547336

     

    1.2 不可变类型

      value一旦改变,id也改变(id改变意味着创建了新的内存)。整数、浮点数、字符串、元组是不可变类型。

    l1 = ['a','c']
    tu = (1,2,3,l1)
    print(tu , id(tu))
    l1[1]='zxj'
    print(tu,id(tu))
    result:
    (1, 2, 3, ['a', 'c']) 1921112815480
    (1, 2, 3, ['a', 'zxj']) 1921112815480

    2.  引用计数

      引用计数即对一个变量值的引用次数,如:

             a = 10

             b = 10

           变量10被引用了2次。

    3. 垃圾回收机制

      定义变量并不会占用内存,只有在运行变量类型的时候才占用内存,运行完毕后需要释放内存,解除占用。Python存在一种机制会回收这种占用的内存,即垃圾回收机制。垃圾回收机制在一下两种情况下会回收内存:

      1>程序执行完毕后id被回收;

      2>引用计数为0后id被回收。

  • 相关阅读:
    linux开启oracle服务
    一个tomcat多域名绑定多项目
    linux安装jdk1.7.0
    windows 查看端口进程和杀死进程
    windows2008 扩大远程连接数
    windows下用bak文件备份数据库
    linux常用命令
    mysql 开启远程连接访问
    windows 下tomcat安装
    IBM公司面试题
  • 原文地址:https://www.cnblogs.com/ajunyu/p/10955109.html
Copyright © 2011-2022 走看看