【发布时间】:2011-10-10 10:09:40
【问题描述】:
在 Python 弱引用文档(http://docs.python.org/library/weakref.html)中,它说
list、dict等几种内置类型不直接支持 弱引用,但可以通过子类化添加支持
我认为为大字典创建弱引用在某些实际情况下可能很有用。我想知道该实施背后的原因是什么?
【问题讨论】:
在 Python 弱引用文档(http://docs.python.org/library/weakref.html)中,它说
list、dict等几种内置类型不直接支持 弱引用,但可以通过子类化添加支持
我认为为大字典创建弱引用在某些实际情况下可能很有用。我想知道该实施背后的原因是什么?
【问题讨论】:
大多数内置类型不是直接可弱引用的(例如 str、int、float、list、dict、None),还有一些甚至不能通过子类来实现(例如 CPython 中的元组)。
关于几个内置类型的weakrefs底层实现的一些细节可以在this March-2005 python-list post by Raymond Hettinger中找到。
【讨论】:
我有根据的猜测是,dicts 和列表在内部用于实现weakrefs,所以在这里你会遇到鸡蛋鸡的情况。
【讨论】: