Python 内存管理

python的内存管理机制:引用计数器机制+垃圾回收机制 #####引用计数器机制: 对象被引用时加1,不被引用时减1,当计数器为0时,该对象会被自动销毁

引用计数加1场景:

  • 对象被创建 p1 = Person()
  • 对象被引用 p2 = p1
  • 对象作为参数,传入到一个函数中
  • 对象作为一个元素,存在容器中 l = [p1]

引用计数减1场景:

  • 对象的别名被显示销毁 del p1
  • 对象的别名被赋予新的对象: p1 =123
  • 一个对象离开了它的作用域:一个函数执行完毕,内部的局部变量关联的对象,它的引用计数减1
  • 对象所在的容器被销毁,或从容器中删除该对象
class Person:
    pass

class Dog:
    pass

import objgraph

p = Person()

d = Dog()

print(objgraph.count('Person')) #1

print(objgraph.count('Dog'))  #1

#对象 p 和 d相互持有,造成循环引用,当p和d被释放时,
p.pet= d

d.master = p

del p

del d

print(objgraph.count('Person')) #1

print(objgraph.count('Dog')) #1
复制代码

转载于:https://juejin.im/post/5a332fd66fb9a0450b666d6c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值