私は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
オブジェクトを返します。呼び出し可能オブジェクトではなくプロパティとしてアクセスできる弱参照オブジェクトを作成するよりコンパクトな方法はありますか?