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

Python:哪些类型支持弱引用?

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

Python:哪些类型支持弱引用?

首先:这都是CPython特有的。弱引用在不同的Python实现上的工作方式有所不同。

大多数内置类型不支持弱引用,因为Python的弱引用机制为支持弱引用的每个对象增加了一些开销,并且Python开发人员团队决定他们不希望大多数内置类型来承担这种开销。这种开销体现的最简单的方式是,任何具有弱引用支持的对象都需要一个空间来为弱引用管理提供额外的指针,并且大多数内置对象都不为该指针保留空间。

试图用弱参考支持来编译所有类型的完整列表与尝试编译所有有红头发的人的完整列表一样富有成果。如果要确定某个类型是否具有弱引用支持,则可以检查其

__weakrefoffset__
,对于具有弱引用支持的类型,该值非零:

>>> int.__weakrefoffset__0>>> type.__weakrefoffset__368>>> tuple.__weakrefoffset__0>>> class Foo(object):...     pass... >>> class Bar(tuple):...     pass... >>> Foo.__weakrefoffset__24>>> Bar.__weakrefoffset__0

类型的值

__weakrefoffset__
是从实例开始到弱引用指针的字节偏移量,如果实例没有弱引用指针,则为0。它对应
tp_weaklistoffset
于C级别的struct类型。截至撰写本文时,
__weakrefoffset__
尚未完全记录,但
tp_weaklistoffset

记录了
,因为在C中实现扩展类型的人们需要了解它。



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

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

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