类的对象是否可能具有与它们所在的类属性相同的引用?

我不知道我的问题是不是太混乱,甚至是正确的,所以为了清楚起见,这里有一个例子:

class Parent():
  def __init__(self,addr):
    self.addr = addr
    self.child1 = Child(self.addr)
    self.child2 = Child(self.addr)

class Child():
  def __init__(self,addr):
    self.addr = addr

parent = Parent('USA')

每当我改变我想要做到的是addr对的属性Parent对象addr的属性child1child2对象的内部Parent也发生变化。

parent.child1.addr >>> 'USA'

但是当我改变Parent对象时,对象Parent.child1保持不变。

parent.addr = 'France'

parent.child1.addr >>> 'USA'
parent.addr >>>'France'

回答

你可以制作Child.addr一个property获取addr父级的:

class Parent:
    def __init__(self, addr):
        self.addr = addr
        self.child1 = Child(self)
        self.child2 = Child(self)


class Child:
    def __init__(self, parent):
        self.parent = parent

    @property
    def addr(self):
        return self.parent.addr


以上是类的对象是否可能具有与它们所在的类属性相同的引用?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>