我的Python變量發生了什麼? old_pos
似乎被鏈接到pos
:Python變量怪異?
代碼:
pos = [7, 7]
direction = [1, 1]
old_pos = pos
print 'pos = '+str(pos)
print 'old_pos = '+str(old_pos)
pos[0] += direction[0]
pos[1] += direction[1]
print 'pos = '+str(pos)
print 'old_pos = '+str(old_pos)
輸出:
pos = [7, 7]
old_pos = [7, 7]
pos = [8, 8]
old_pos = [8, 8]
但是,如果我用old_pos = tuple(pos)
甚至old_pos = list(pos)
更換old_pos = pos
,我不明白這個問題:
pos = [7, 7]
old_pos = [7, 7]
pos = [8, 8]
old_pos = [7, 7]
是的,這就是'='所做的。 :-) – Ken 2010-09-01 14:57:23
python中沒有變量,只有名字和對象。 – hop 2010-09-01 15:19:16
@hop:但是不是名稱引用變量? – recursive 2010-09-01 15:22:26