1. 可变与不可变类型

1.1  可变类型

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

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

1.2 不可变类型

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

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

2.  引用计数

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

     a = 10

      b = 10

变量10被引用了2次。

3. 垃圾回收机制

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

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

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

最新文章

  1. c#-1 数据结构 定义相关 界面交互数据 Model层
  2. JQuery01
  3. 【iCore3 双核心板】例程二十五:LAN_DNS实验——域名解析
  4. 面向对象设计模式--策略模式Strategy
  5. git 版本库回滚(转载)
  6. ios真机调试详细步骤
  7. 谈.Net委托与线程——解决窗体假死
  8. Cocos Creator—定制H5游戏首页loading界面
  9. log4j配置,输出sql到控制台
  10. COGS.264.数列操作(分块 单点加 区间求和)
  11. Git HEAD detached from XXX (git HEAD 游离) 解决办法
  12. LeetCode--401--二进制手表
  13. django-子项目
  14. win10 关闭屏幕自动亮度
  15. ios用户登录记住密码
  16. iOS 严重问题解释(crash)
  17. android中共享全局数据的方法
  18. HDU 6148 Valley Numer (数位DP)
  19. PHP版本切换
  20. Vue2.0 官方文档学习笔记

热门文章

  1. 浅谈Nginx服务器的内部核心架构设计
  2. SpringBoot | 启动异常 | 显示bulid success 无 error信息
  3. Hibernate、Spring和Struts工作原理及使用理由
  4. [转]Java 8 Optional类深度解析(null处理)
  5. springclould feign客户端添加全局参数
  6. IOS画线条
  7. siege4安装和使用介绍
  8. vue分环境打包配置方法一
  9. 异步 Thread
  10. POJ Washing Clothes 洗衣服 (01背包,微变型)