-1
我剛開始做Python,所以這對我來說很困惑。字典鏈接分配只產生一個副本?
這一次打印4
a = b = 4
a = 3
print b
然而,這一個打印{ 'A':1}
d1 = d2 = {}
d1['a'] = 1
print d2
那麼,爲什麼這種差異?我認爲它與可變性有關,但不是int也是可變的嗎?
我剛開始做Python,所以這對我來說很困惑。字典鏈接分配只產生一個副本?
這一次打印4
a = b = 4
a = 3
print b
然而,這一個打印{ 'A':1}
d1 = d2 = {}
d1['a'] = 1
print d2
那麼,爲什麼這種差異?我認爲它與可變性有關,但不是int也是可變的嗎?
這裏的&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
因此,當嘗試以提供不同的對象(= 3)的新refrence被實例化的對象。
誰說整數是可變的? – 2014-10-09 07:53:15
我們的上帝說int是不可變的:P – 2014-10-09 15:02:43