gpt4 book ai didi

python - 在对象上使用 weakref 作为属性的更有效方法?

转载 作者:太空狗 更新时间:2023-10-30 03:03:57 25 4
gpt4 key购买 nike

我知道在 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 对象。有没有更紧凑的方法来创建我可以作为属性而不是可调用对象访问的弱引用对象?

最佳答案

我使用 weakref.proxy为此。

import weakref

class A(object):
def __init__(self, parent)
self.parent = weakref.proxy(parent)

关于python - 在对象上使用 weakref 作为属性的更有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com