在python中通过引用访问变量 我不确定这在Python中是否有意义,但是考虑到我有两个变量 x和 y>代码>: x = 1 y = x
现在,在稍后更改在python中通过引用访问变量 我不确定这在Python中是否有意义,但是考虑到我有两个变量 x和 y>代码>: x = 1 y = x,python,pointers,reference,Python,Pointers,Reference,现在,在稍后更改x时,我希望y看到此更改。如果我这样做的话 x = 2 我希望y也为2。是否有办法执行reference(x)=2,以便分配给x的所有变量都将看到此更改 实现这一点的一种方法是对所描述的所有内容使用列表。如果我将x定义为list,那么这就行了,如果 x = [1] y = x 然后,对新列表中的val执行x.clear()和x.append(val)将有效,并且y将根据新列表进行更改 但我希望对任何类型都这样做,因为否则我将需要重新访问我的大部分代码库。是否存在可变类型,以便
x
时,我希望y
看到此更改。如果我这样做的话
x = 2
我希望y
也为2。是否有办法执行reference(x)=2
,以便分配给x
的所有变量都将看到此更改
实现这一点的一种方法是对所描述的所有内容使用列表。如果我将x
定义为list,那么这就行了,如果
x = [1]
y = x
然后,对新列表中的val执行x.clear()
和x.append(val)将有效,并且y
将根据新列表进行更改
但我希望对任何类型都这样做,因为否则我将需要重新访问我的大部分代码库。是否存在可变类型,以便我不必将所有的y
重新定义为x[0]
非常感谢您的任何建议。是否可以为您的值创建一个小型包装类?然后,“通过引用”传递包含该值的对象
输出:
5 5
3 3
也许为您的值创建一个小包装器类?然后,“通过引用”传递包含该值的对象
输出:
5 5
3 3
我不明白你为什么真的想要这个。您是在从另一种语言或其他东西重构代码吗?要将其放到上下文中,我有一个PyQt
tableView,其中其模型包含一些数据。现在,用户可以随时更改模型的数据(类型或值)。我有一些线程在后台运行,这些线程使用程序开始时表的模型数据。如果用户更改了数据,我宁愿它自动反映在其他线程和类中,而不必重新阅读模型。你指的是y=copy.deepcopy(x)
?可能重复的@damores不是真的。。。我提到这个答案是可能的解决方案,但我在寻找不同的答案。我想我所要求的懒散的出路是不可能的。我不明白你为什么真的想要这个。您是在从另一种语言或其他东西重构代码吗?要将其放到上下文中,我有一个PyQt
tableView,其中其模型包含一些数据。现在,用户可以随时更改模型的数据(类型或值)。我有一些线程在后台运行,这些线程使用程序开始时表的模型数据。如果用户更改了数据,我宁愿它自动反映在其他线程和类中,而不必重新阅读模型。你指的是y=copy.deepcopy(x)
?可能重复的@damores不是真的。。。我提到这个答案是可能的解决方案,但我在寻找不同的答案。我想我所要求的懒惰的出路是不可能的。