在python中实例化时创建弱引用的任何理由

时间:2014-06-23 06:19:37

标签: python weak-references

我正在查看Python 3.2中的一些代码,我发现了一些看起来很有趣的东西。它是一个允许用户在实例化对象时对对象进行弱引用的类。这是代码:

class ReferableObject:

    __instanceheap__ = []

    def __new__(cls, *args, **kwargs):
        self = super().__new__(*args, **kwargs)
        cls.__instanceheap__.append(self)
        return self

我想重点是在实例化时尝试创建对象的弱引用会导致weakref立即死亡:

>>> class A:
        pass

>>> a = weakref.ref(A())
>>> a() is None
True
>>> class B(ReferableObject):
        pass
>>> b = weakref.ref(B())
>>> b() is None
False

虽然有点有趣,但这对我来说似乎毫无用处。存储实例的方式使得它们在立即引用它们时不会死亡,这似乎是业余的。有什么理由可能有人想要在实例化时做出弱参考?

0 个答案:

没有答案