Python对象及内存管理
对象类型
标准类型
Integer、Boolean、Long integer、Floating point real number、Complex number、String、List、Tuple、Dictionary
其他内建类型
类型、Null对象(None)、文件、集合/固定集合、函数/方法、模块、类
内部类型
一般程序员接触不多
Python对象三个特性
- 身份:每个对象的唯一身份标识,可通过内建函数id()得到。
- 类型:决定对象保存什么类型的值,可通过内建函数type()得到。
- 值
is & is not
is和is not两个操作符测试两个变量是不是指向同一个对象。
a is b 相当于 id(a) == id(b)
整型和字符串对象时不可变对象,在创建对象时,可能不会真的创建对象,而且python会缓存简单整型。
标准类型的内建函数
cmp(obj1, obj2)
repr(obj) 或 `obj`
str(obj)
type(obj)
对象的声明
无需显式声明,在第一次被赋值的时候自动声明。
对象的类型和内存占用都是运行时确定的。
Python垃圾收集器
使用引用计数器来跟踪内存中的对象。
在对象创建并赋值给引用时计数器为1,被赋值给别名、作为参数传递、或被赋值为一个窗口对象的成员时,计数器增加。
减少计数器
- 对象的引用被销毁时,计数器减小。
- 当引用被赋值另一对象时,原对象计数器减一。
- del显式销毁
- 对象被从一个窗口对象中移除(list)
- 窗口对象本身被销毁
垃圾收集机制
垃圾收集器释放引用计数器为0的对象的内存,也负责检查计数器大于0单页应该被销毁的对象。
当一个对象的引用计数器为0时,解释器会暂停,释放该对象和仅有该对象可到达的其他对象。
作为计数器的补充,垃圾收集器会留心分配总量很大的内存,会暂停解释器,试图清理未引用的循环。
Python对象及内存管理相关推荐
- 什么是 Python 的 「内存管理机制」?
什么是内存管理器(what) Python作为一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,与大多数编程语言不同,Python中的变量无需事先申明,变量无需指定类型,程序员无需关心内存 ...
- Python如何进行内存管理?
Python中主要通过引用计数和内存池机制进行内存管理. 一.引用计数机制 Python内部使用引用计数(记录对象有多少个引用)来保持追踪内存中的对象,当对象被创建时,该对象的引用计数加1;当对象被销 ...
- python内存池机制,python基础—12python内存管理机制
一.内存池机制 1.对象池 面试题目: python内存管理机制是什么? 1). 由于python中万物皆对象,内存管理机制就是对象的存储问题,Python会分 配一块内存空间去存储对象. 2) 对于 ...
- 视频教程-iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-iOS
iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化 小码哥教育CEO,曾开发了2个iOS的流行开源框架(MJRefresh.MJExtension),目前在国内的使用率非常高. 李 ...
- iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-李明杰-专题视频课程...
iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-236人已学习 课程介绍 得遇名师,突飞猛进!iOS培训王者MJ(李明杰)老师精心研发,iOS进阶课程,实用技术 ...
- Python中的内存管理机制
Python是如何进行内存管理的 python引用了一个内存池(memory pool)机制,即pymalloc机制,用于管理对小块内存的申请和释放 1.介绍 python和其他高级语言一样,会进行自 ...
- python内存回收垃圾有哪些_[Python之路] 内存管理垃圾回收
一.python源码 1.准备源码 解压得到文件夹: 我们主要关注Include中的".h"文件以及Objects目录中的".c"文件. 我们从Include和 ...
- 6.Python深入_内存管理
Vamei博客地址:http://www.cnblogs.com/vamei/p/3232088.html 哈,这次是完完全全照搬大神的了 语言的内存管理是语言设计的一个重要方面.它是决定语言性能的重 ...
- 简述python中的内存管理机制_Python中的内存管理机制
Python是如何进行内存管理的 python引用了一个内存池(memory pool)机制,即pymalloc机制,用于管理对小块内存的申请和释放 1.介绍 python和其他高级语言一样,会进行自 ...
最新文章
- SynchronousQueue原理解析
- 5.spring boot使用FastJson解析JSON数据
- scikit-learn algorithm cheat sheet【汉化版】
- tf.nn.in_top_k的用法
- [网络开发]服务器开发
- Python 第三方模块之 selenium - 模拟操作 Chrome 浏览器
- ac自动机 匹配最长前缀_别再暴力匹配字符串了,高效的KMP,才是真的香
- vue光标插入内容_vue项目中在可编辑div光标位置插入内容的实现代码
- kali的软件包安装源配置
- c打开指定路径文件_Selenium 系列篇(五):文件篇
- python实践答辩ppt_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶没压力!...
- 微型计算机的输出有,微型计算机必不可少的输入/输出设备是()。 - 百科题库网...
- python之range与xrange使用区别
- c c++函数资源释放时避免goto的方法
- oracle 的insert into的详解
- python学习笔记_week19
- Java字节码魔法数字_Java的魔法:字节码
- U盘病毒的传播途径和如何安全使用U盘
- 构建/dev/kmem枚举所有Linux内核模块(包括隐藏的)
- mysql数据库表的多条件查询