2013年4月3日
摘要: 今天在重构代码时,遇到了一个问题,找了好久才发现是在变量链式赋值的时候出了问题,记下来以免以后再犯。以下是例子:a = b = c = []c = [1,2,3]执行这两条语句之后,查看abc的值:a和b仍然都是[],c已经是[1,2,3]继续:c.append(3)b.append(1)现在看abc的值,c是[1,2,3,3],b是[1],重点来了,a现在也成为了[1]而我们对a没有进行任何地操作,这说明,a和b代表的对象是相同的。那么出现这种情况的原因是什么呢?这是因为python的变量定义的机制。python链式赋值:a = b = c = [],这时候,a,b,c对应的都是同一个内存中 阅读全文
posted @ 2013-04-03 17:37 andy071001 阅读(501) 评论(0) 推荐(0) 编辑