python - c = a + b; 如何使 c 始终反映对 a 或 b 所做的任何更改?
问题描述
我不确定表达这个问题的正确方法。我想将一些算术(带有指向其他“子变量”的引用/指针)分配/绑定到一个变量,并在任何贡献的“子变量”被更新时更新变量的值。
>>> a = 1
>>> b = 2
>>> c = a + b
>>> c
3
>>> a = 2
>>> c
3
在理想情况下,c 在此代码示例末尾的值为 4。
--
附加信息:我正在随机生成算术并希望能够嵌套这些变量(例如:d = a + c 将与 d = a + (a + b) 相同,其中 d 将反映发生的任何变化一或二)
解决方案
使用不可变的内置类型(如int
. 因为a
and绑定到不可b
变类型(,并且为 的旧值起别名的类将保持不变;它不保留与自身的直接联系)。int
a
a
a
a
这可能起作用的唯一方法是,如果a
并且b
是可以更新或重新分配内容的可变类型,并且它们具有__add__
/的重载__radd__
,则产生了另一个类,该类存储对所述可变类型的实例和/或实例的引用本身(允许嵌套案例)。无论哪种方式,实现这样一套类都超出了简单答案的范围;我强烈建议您为您的问题找到不同的解决方案。