在python中通过引用访问变量

时间:2018-02-28 02:35:42

标签: python pointers reference

我不确定这在python中是否有意义,但请注意我有两个变量xy

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]

任何建议都表示赞赏。

1 个答案:

答案 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