为什么weakref在Python中不支持内置类型?

问题描述 投票:10回答:2

在Pythonweakref文档(http://docs.python.org/library/weakref.html)中,它表示

几种内置类型,例如list和dict不直接支持弱引用,但可以通过子类添加支持

我认为在某些实际情况下为大词典创建weakref可能会有用。我想知道该实现背后的原因是什么?

python weak-references
2个回答
6
投票

大多数内置类型不能直接弱引用(例如,str,int,float,list,dict,None),并且有一些甚至不能通过子类化来实现(例如,CPython中的元组) 。

关于几种内置类型的weakref的基础实现的一些详细信息,可以在this March-2005 python-list post by Raymond Hettinger中找到。


0
投票

我的有根据的猜测是,字典和列表在内部用于实现weakrefs,所以在这里您会遇到一个鸡蛋鸡的情况。

© www.soinside.com 2019 - 2024. All rights reserved.