栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

删除对象时无法调用__dealloc__

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

删除对象时无法调用__dealloc__

del a_set
删除对对象的引用(局部变量)。C ++对象中还有另一个参考。这称为参考周期。循环GC 可能会
在一段时间后收集此信息。然而,没有保证时(甚至 如果 )出现这种情况,所以你不应该依赖于它1。

例如,含有纯Python对象与参考周期

__del__
特殊的方法都记录到不被释放
在所有

在版本3.4中进行了更改:在PEP 442之后,带有

__del__()
方法的对象
gc.garbage
不再存在。

我不知道Cython的实现

__dealloc__
是否会触发此行为,但是如前所述,销毁无论如何都不是确定性的。如果您要释放一些资源(例如,不是Python对象的内存块,文件,连接,锁等),则应公开一种明确的手动方式(参见
close
各种方法)对象)。上下文管理器可以简化客户端代码。

免责声明:几乎所有这些都是CPython特定的。

1有些人更喜欢将GC看作是模拟无限内存可用性的抽象,而不是破坏无法访问的对象的抽象。通过这种方法,很明显破坏不是确定性的,甚至无法保证。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639688.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号