我不确定这在python中是否有意义,但请注意我有两个变量x
和y
:
x = 1
y = x
现在,稍后当我更改x
时,我希望y
看到此更改。那就是我做的
x = 2
我希望y
也是2。有没有办法reference(x) = 2
,以便分配给x
的所有变量都会看到此更改?
使这项工作的一种方法是使用列表来描述here所描述的所有内容。如果我将x
定义为列表,那么这将有效,所以如果
x = [1]
y = x
然后,执行x.clear()
和x.append(val) for val in new_list
会有效,y
会根据新列表进行更改。
但是我想为任何类型做这件事,因为否则我需要重新审视我的大部分代码库。是否有可变类型,因此我不必将y
的所有内容重新定义为x[0]
。
任何建议都表示赞赏。
答案 0 :(得分:4)
或许为您的值制作一个小包装类?然后通过引用"传递包含该值的对象。
class Wrapper:
def __init__(self, value):
self.value = value
x = Wrapper(5)
y = x
print(x.value, y.value)
x.value = 3
print(x.value, y.value)
输出:
5 5
3 3