Dictionary 在Python中是否可以在字典值中写入对对象的引用?

Dictionary 在Python中是否可以在字典值中写入对对象的引用?,dictionary,object,reference,Dictionary,Object,Reference,我可以使用字典中的值作为对对象的引用吗? 例如: 当我们改变时,“a”是字典中的下一个变化 b = 50 print(dict_a) ##{'command_1': 60, 'command_2': 50} 是的,你可以,但不是这样 这里发生的是: b = 70 # b is now reference to anonymous int object with value of 70 dict_a = {'command_1':a,'command_2':b} # dict_a['com

我可以使用字典中的值作为对对象的引用吗? 例如:

当我们改变时,“a”是字典中的下一个变化

b = 50
print(dict_a)
##{'command_1': 60, 'command_2': 50}

是的,你可以,但不是这样

这里发生的是:

b = 70 
# b is now reference to anonymous int object with value of 70

dict_a = {'command_1':a,'command_2':b} 
# dict_a['command_2'] now points *to the same int object* as b

b = 50
#b now points to another anonymous int object with value of 50
底线。当做

b=X
something=b
我们将b和某物都指向X。当我们稍后将b更改为指向Y时,某物仍然指向X。赋值时,请查看上一个赋值的右侧

您可以做的一件事是使用一些更智能的对象作为dict值,通过调用其中的某个方法可以更改其内部值

例如,假设一个扩展int的myint类:

n=myint(5)
mydict=dict(command_1=n)
n.set_value(8)
这应该可以工作,因为n仍然引用与dict中相同的对象

我手头没有python文档,也许您也可以使用int对象来实现这一点,但我对此表示怀疑,因为int对象是不可变的

n=myint(5)
mydict=dict(command_1=n)
n.set_value(8)