我知道在 Python 中我可以执行以下操作:
from weakref import ref
class A(object):
def __init__(self, parent):
self._parent = ref(parent)
@property
def parent(self):
return self._parent()
a = A(some_other_object)
print a.parent
在这种假设情况下,我创建了一个实例A
并以一种很好的方式访问弱引用parent
对象。不过,每个弱引用属性似乎有 4 行代码有点多。
我想我可以做如下的事情作为上述的捷径:
class A(object):
def __init__(self, parent):
self.parent = property(ref(parent))
但这不会返回父对象,而是返回一个property
对象。有没有更紧凑的方法来创建一个弱引用对象,我可以将其作为属性而不是可调用对象访问?