阳阳得意7825

导航

python内存管理

摘要:python有如下特点:
  • 变量无须事先声明
  • 变量无须指定类型
  • 程序员不用关心内存管理
  • 变量名会被回收
  • del语句能够直接释放资源
 
Python中,对象的类型和内存占用都是运行时确定的,在赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型,在对象创建后,一个该对象的应用会被赋值给左侧的变量。
 
1.Python采用引用计数的计数来追踪内存中的对象
增加引用计数例子:
#创建一个浮点型对象并将其引用赋值给x, 此时引用计数为1
x=3.14
#创建了一个指向同一对象的别名y,并没有为y创建一个新对象,此时引用计数变为2
y=x 
增加引用方法:
  • 对象被创建:x=3.14
  • 另外的别名被创建: y=x
  • 作为参数传递给函数(本地引用): foo(x)
  • 作为容器对象中的一个元素: mylsit=[12,x,4]
减少引用计数例子:
foo='xyz' #引用计数为1
bar=foo   #引用计数为2
foo=123   #引用计数为1
减少引用方法:
  • 一个本地引用离开其作用范围,比如一个函数运行结束时
  • 对象别名被显示销毁:del y
  • 对象的一个别名被赋值给其他对象
  • 对象被从一个容器对象中移除:mylist.remove(x)
  • 容器对象本身被销毁: del mylist
 
2.垃圾收集
不再使用的内存会被垃圾收集的机制释放

posted on 2017-12-04 15:22  阳阳得意7825  阅读(130)  评论(0编辑  收藏  举报