Python垃圾回收机制

垃圾回收机制:

 Python中的垃圾回收算法是采用引用计数, 当一个对象的引用计数为0时, Python的垃圾回收机制就会将对象回收

del 

给a变量赋值为'planet',a变量指向此字符串,此时该字符串对象的引用计数为1。又把a赋值给b,此时该字符串对象的引用计数为2,del  a之后,a 变量不再指向该字符串,引用计数因此 - 1,变为1。而内存中实际的字符串对象并没有被删除, del语言只是删除了a 变量对该字符串对象的引用。

导致引用计数+1的情况:

1. 对象被创建,例如 a=' planet '

2. 对象被引用,例如 b=a

3. 对象被作为参数,传入到一个函数中,例如 func ( a )

4. 对象作为一个元素,存储在容器中,例如 list1 = [a,a]

导致引用计数-1的情况:

1. 对象的别名被显式销毁,例如 del a

2. 对象的别名被赋予新的对象,例如 a=17

3. 一个对象离开它的作用域,例如f函数执行完毕时,func函数中的局部变量对象所在的容器被销毁,或从容器中删除对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。