Python内存管理说明
2017-03-14 00:00
369 查看
#coding=utf8 ''' 变量和内存管理细节: 1、变量无须事先声明 2、变量无须指定类型 3、程序员不用关心内存管理 4、变量名会被"回收" 5、del语句能够直接释放资源 ''' from audioop import add ''' Python中无需显示声明变量,变量在第一次被赋值时自动声明。 变量只有被创建和赋值后才能被使用。 ''' #print var #变量var没有定义 var=45 #变量一旦被赋值,就可以通过变量名来访问它 print var ''' Python中不但变量名无需实现声明。 对象的类型和内存占用都是运行时确定的。 Python解释承担了内存管理的复杂任务。 ''' ''' Python使用引用计数来保持追踪内存中的对象。 Python内部记录着所有使用中的对象有多少引用。 一个内部跟踪变量,称为一个引用计数器。 每个对象拥有引用的个数,称为引用计数。 当对象被创建时,就创建了一个引用计数,当对象不在需要时,引用计数为0,就会被垃圾回收。 ''' ''' 当对象被创建并赋值给变量时,该对象的引用计数就被设置为1。 当同一个对象的引用又被赋值给其它变量时, 或作为参数传递给函数、方法或实例时, 或者被赋值为一个窗口对象的成员时, 该对象的一个新的引用,或者称作别名, 就被创建(则该对象的引用计数自动加1)。 ''' Float=3.14 #创建一个浮点对象并将其引用赋值 Some=Float #创建一个指向同一对象的别名Some。Float对象的引用计数加1。 add(Float,Float) #作为参数传递给函数(新的本地引用),引用计数加1。 List=[123,Float] #称为容器对象的一个元素,引用计数加1。 ''' 当对象的引用被销毁时,引用计数会减小。 当引用离开其作用范围时,所有的局部变量都被自动销毁,对象的引用计数页随之减少。 ''' def add(x,y): #局部变量x,y,当离开函数时,x,y被自动销毁 return x+y ''' 当变量被赋值给另外一个对象时,原对象的引用计数会自动减1。 ''' foo='xyz' #创建一个字符串对象并将其引用赋值 bar=foo #创建一个指向同一对象的别名bar。引用计数加1。 foo=123 #把整数对象赋值给变量,字符串引用计数减1。 ''' 使用del删除一个变量,也会造成对象引用计数减少; 当一个对象被移出一个窗口对象时,也会造成对象引用计数减少; ''' del Some #对象的别名被显示销毁 List.remove(Float) #对象被从一个窗口中移除 del List #窗口对象本身被销毁 ''' del语句会删除对象的一个引用,语法格式如下: del obj1[,obj2[,... objN]] 执行一个del语句会产生两个结果: 从现在的命名空间中删除obj、对象的引用计数减1 ''' ''' 执行del语句会删除对象的最后一个引用, 也就是对象的引用计数减为0, 这会导致该对象从此“无法访问”或“无法抵达”。 该对象就成为垃圾回收机制的回收对象。 任何追踪或调试程序会给一个对象增加一个额外的引用, 这会推迟该对象被回收的时间。 ''' ''' 不再被使用的内存会被一种称为垃圾收集的机制释放。 垃圾收集器是一块独立的代码,它用来寻址引用计数为0的对象。 它也负责检查虽然引用计数大于0但也应该被销毁的对象。 ''' ''' Python的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。 用来防止循环引用的产生。 '''
相关文章推荐
- Python内存管理说明
- Python 网络编程说明第1/2页
- 当dll使用静态RTL时关于内存管理的重要说明--BCB中
- python 函数参数的传递(参数带星号的说明)
- PYTHON正则表达式 re模块使用说明
- Python中模块之间变量引用的方法说明
- PYTHON正则表达式 re模块使用说明
- python下函数参数的传递(参数带星号的说明)
- python 的内嵌time模板翻译及说明
- linux下 Apache mysql python mod_python Django 配置安装说明,绝对可以安装上的说明
- 关于在组件GIS开发中使用Python的一点补充说明
- Python 元类使用说明
- [Python]快速解析数据库视图XML配置获取数据库字段说明
- python 的内嵌time模板翻译及说明
- python 的time模板翻译及说明
- Python文件读取说明
- 内存管理技术详细说明
- Python 元类使用说明
- python下函数参数的传递(参数带星号的说明)
- python ConfigParser配置换行、重复、大小写的说明