在Python中,创建对象A的对象变量的最佳方法是什么?它依赖于对象B的变量,并且在对象B的变量发生变化时自动更新它?在
简单示例:
class house:
house_size = 100
class room:
room_size = 30
house1 = house()
room1 = room()
house1.house_size = room1.room_size * 10
print house1.house_size #returns 300
room1.room_size = 50
print house1.house_size #still returns 300, but I would like it to return 500
在上面的例子中,定义了house1.house_size
和{house1.house_size
在room1.room_size
随后发生变化时自动更新?在
编辑:
为了澄清这一点,我正在寻找一种通用的解决方案,在读取对象变量的值时,对象验证其所有依赖项是否仍然“有效”。在上面的例子中,对象变量house1.house_size
依赖于room1.room_size
您可以将这些依赖关系与电子表格应用程序相类似:例如,单元格A1
可能被定义为=B1+B2+B3
,而{=C1*2
。每当读取单元格A1
的值时,它将检查B1
、B2
或{A1
之前,将重新计算A1
的值。因此,在Python中,我在寻找一个事件处理程序,当house1.house_size
的值被读取时,它就会被触发,这样它的值在返回之前可以被重新计算。在
答案应该足够通用,这样就可以处理对象的整个依赖树,树中的每个节点都会自己检查它所依赖的所有对象变量的所有值是否仍然有效,否则将重新计算。在
必须在房间和房屋模型之间建立关系。在这个答案中,我使room对象接受house对象作为参数之一,并且每当设置
room_size
参数时,它也将更新house_size
。在相关问题 更多 >
编程相关推荐