流畅的Python读书笔记 --- 第八章 对象引用,可变性和垃圾回收

近期在读“流畅的Python”这本书,想把本身的读书笔记分享给你们,但愿能帮到也对这本书感兴趣可是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网站)python

章节概述:介绍对象相关概念和垃圾回收机制
章节结构:算法

  • 对象
  • 垃圾回收

具体内容:缓存

  • 对象

1.变量是什么?
变量是附加在对象上的标注,好比定义一个变量v=a,实际上是把v分配给a这个对象,由于右边先执行,建立了a。
2.什么是别名?
别名就是两个变量绑定同一个对象,==和is的区别就是,==比较值,is比较表示,因此两个变量标注在一个对象才能is为true,可是==只要是标注的对象的值相等或者为一个对象,就能返回真。
3.什么是一个对象的标识?
对象一旦建立,就会产生永不变的标识,能够理解为内存地址,is是比较标识,id()是返回标识整数表示。
4.元组的不变性指的是元素的标识,由于元组保存的是一系列对象的引用,可是若是元素自己是可变的,元素的值是能够变得,可是标识不变。
5.浅复制和深复制:浅赋值是一种共享对象,深复制是建立另外一个对象,把内容复制过去。网站

  • 垃圾回收

1.Python处理对象机制:对象毫不会自行销毁,然而,没法获得对象时可能会被看成垃圾回收。
2.del语句删除名称,而不是对象,del命令可能会致使对象被看成垃圾回收,不过是仅当删除的变量保存的是对对象的最后一个引用,或者没法获得对象时。
3.垃圾回收机制主要算法:引用计数。当引用计数归零,对象当即就被销毁
4.弱引用:弱引用不会增长对性的引用数量,引用的目标对象称为所指对象。使用方法时调用weakref.ref()
5.WeakValueDictionary实现的是一种可变映射,里面的值时对象的弱引用,被引用的对象在程序中的其余地方被看成垃圾回收后,对应的键会自动从WeakValueDictionary中删除。因此WeakValueDictionary常常用于缓存。对象

相关文章
相关标签/搜索