@rulerstorm
2014-06-08T11:41:19.000000Z
字数 379
阅读 3944
python
a=[1,2]
b=a
a.append(3)
print b
输出:[1,2,3]
嗯,这样看起来python的变量都是指针。
a=1
b=a
a=2
print b
输出:1
嗯?why?b不是指针吗?为什么这次b没有跟着a变呢?
来看看下面这个情况吧
a=[1,2]
b=a
a=[3]
print b
输出:[1,2]
阿哈!这次b又没有跟着a变,为什么呢?
其实我们的猜想是正确的,python的变量的确都是指针,只是在重新被附值时,指向了另一个list,而不是像情况1那样,改变了那个list。
在情况2也是这样,第三句并不是a指向的1改变了,而是a的指向改变了。原来的1还在那里,没变。
b = a [:]