1.Python 中的变量:是容器(bucket)还是标签(label)?
在Python中“变量”这个名称或许有点误导性,应该叫“名称”或“标签”会更准确一些。但是,似乎所有人都习惯称为“变量”了。无论叫什么名称,都应该知道Python中的变量是如何进行工作的。
对变量的常见解释就是存储值的容器,有点像个桶(bucket),当然这不算准确。对许多编程语言(如C语言)来说,这种解释是合理的。
但是,Python中的变量不是容器,而是指向Python对象的标签,对象位于 解释器的命名空间中。任意数量的标签(或变量)可以指向同一个对象。当对象发生变化时,所有指向它的变量的值都会改变。
通过以下简单代码,深刻体会理解上述含义:
1 a=[1,2,3] 2 b=a 3 c=b 4 b[1]=5 5 print(a,b,c)
a=[1,2,3]
b=a
1 a=[1,2,3] 2 b=a 3 c=b 4 b[1]=5 5 print(a,b,c)
c=b
b[1]=5
print(a,b,c)