Vin*_*ida 3 python oop python-3.x
我不知道我的问题是不是太混乱,甚至是正确的,所以为了清楚起见,这里有一个例子:
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')
Run Code Online (Sandbox Code Playgroud)
每当我改变我想要做到的是addr
对的属性Parent
对象addr
的属性child1
和child2
对象的内部Parent
也发生变化。
parent.child1.addr >>> 'USA'
Run Code Online (Sandbox Code Playgroud)
但是当我改变Parent
对象时,对象Parent.child1
保持不变。
parent.addr = 'France'
parent.child1.addr >>> 'USA'
parent.addr >>>'France'
Run Code Online (Sandbox Code Playgroud)
你可以制作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
Run Code Online (Sandbox Code Playgroud)