python内存管理

python对象三要素:

identity(值):对应于内存的地址,不可修改
type(类型):不可修改
value(值):
  mutable :可以修改
  immutable:不可以修改


引用计数
当引用计数为0的时候,GC才会真正去回收补分配的内存

>>> def f():
...     pass
... 
>>> id(f)
139655884671288
>>> fa=f
>>> id(fa)
139655884671288
>>> del fa
>>> del f





id()
返回对象的内存地址
用来判断是不是同一个内存对象


整型缓部池(0-1000)
  1.对一一定范围的整型,python在内存中提前进行了分配
  2.可以通过修改源码重新编译python来修改缓冲池的范围
  3.不会被回收

整型在同一个地址:

>>> a=1
>>> b=1
>>> id(a)
19419960
>>> id(b)
19419960

类对象不在一个地址
>>> class A:
...     pass
... 
>>> c=A()
>>> d=A()
>>> id(c)
140100598572888
>>> id(d)
140100598572960


is语句:  
   用来判断两个变量是不是指向同一个存对象

 

posted @ 2016-05-24 13:20  zengkefu  阅读(166)  评论(0编辑  收藏  举报