手动回收问题

手动回收问题

http://img1.sycdn.imooc.com//climg/5dd9f01809720ccb08530696.jpg为什么课程中手动回收后为0,我的结果是1,烦请老师解惑

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。看同学提供的部分代码是没有问题的。同学看下是否有其他位置进行了引用。或者同学可以将代码提供下,方便更好的为您解决问题。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • xiaoyuan1 提问者 #1
    import gc,sys import objgraph print(gc.get_threshold()) class Person(object): pass class Cat(object): pass p = Person() c = Cat() p.name = 'Susan' p.pet = c c_master = p print(sys.getrefcount(p)) print(sys.getrefcount(c)) del p del c gc.collect() print(objgraph.count('Person')) print(objgraph.count('Cat')) 老师这是我写的代码,烦请您给看看
    2019-11-26 11:57:49
  • 好帮手慕美 回复 提问者 xiaoyuan1 #2
    同学,你好。同学代码中c_master = p将p赋值给了c_master变量,引用会加1,因此同学的执行结果为1。老师代码中是c.master哦。同学可以添加代码del c_master后再执行就可以了。祝学习愉快~~~~
    2019-11-26 13:35:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师