我刚开始做Python,所以这对我来说非常困惑。
这个打印4
a = b = 4
a = 3
print b
但是,这个会打印{'a':1}
d1 = d2 = {}
d1['a'] = 1
print d2
那么为什么会出现这种差异呢?我认为这与可变性有关,但是int也不可变吗?
答案 0 :(得分:1)
这里有& b是不可变类型。 whilr字典是可变类型。
尝试id()
功能,它会告诉你确切的故事。
d1 = d2 = {}
print id(d1), id(d2)
d1['a'] = 1
print d2
print id(d1),'\n' ,id(d2)
#id(d1) :-140468952760680
#id(d2):-140468952760680
#ID remian same.
a = b = 4
print id(a),'\n' ,id(b)
#id(a):- 12083536
#id(b):- 12083536
a = 3
print b, id(a), id(b)
#id(a):-12083560 # it is changes
#id(b):-12083536
因此,当尝试提供不同的对象(a = 3)时,会为对象实例化一个新的参考。