python - 一个类的对象是否有可能与它们所在的类属性具有相同的引用?
问题描述
我不知道我的问题是否过于混乱甚至正确,所以为了清楚起见,这里有一个例子:
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
child1
child2
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
推荐阅读
- selenium - 无法获取元素的文本。试过 getText() 和 getAttribute("innerHTML")
- mysql - Slick Transaction 已提交,但未保存在表 [Mysql] 中
- html - 为什么我的 css 不能仅在我的代码的某些部分上工作?
- vb.net - 设置了文本框离开事件,当文本框包含字母时,其他清除按钮无法删除
- android - adb.exe 的问题 - AdbHostServer.cpp:93:无法连接到端口上的 adb 守护程序:5037
- android - 防止 Samsung Device care 删除文件
- javascript - 如何使用存储将数据从 options.js 发送到 content.js?
- reactjs - 如何在 Netlify 重定向后加载 React 应用程序?
- c# - MVC 模型显示日期字段为空。如何解决?
- python-3.x - 特定列中特定行的总和:Pandas