Python重新分配值而不是变量

2024-05-16 21:43:27 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以重新分配变量引用的值,而不是变量本身

a = {"example": "foo"}
b = a

当我重新分配a时,它正在重新分配变量a以引用新值。因此,b不指向新值

a = {"example": "bar"}
print(b["example"]) # -> "foo"

我应该如何重新分配由引用的值?比如:

*a = {"example": "bar"}
print(b["example"]) # -> "bar"

如果这不可能,我可以理解,因为Python需要一个隐藏的双指针


编辑最重要的是,我需要它来重新分配对象值,类似于JavaScript的^{}函数。我假设Python将为对象提供双指针。如果需要,我可以在对象中包装其他值


Tags: 对象函数编辑fooexamplebarjavascript指向
2条回答

您正在创建两个字典,因此内存中有两个不同的对象。如果你不想那样,只保留一本字典

a = {"example": "foo"}
b = a
a["example"] = "bar"
print(b["example"])

Python变量根本就不是这样操作的,简单赋值也不能满足您的需要。相反,您可以清除现有的dict并就地更新它

>>> a = dict(example="foo")
>>> b = a
>>> a.clear()
>>> a
{}
>>> a.update({'example': 'bar'})
>>> b
{'example': 'bar'}

相关问题 更多 >