python对象赋值

来源:互联网 发布:神知世界全文 编辑:程序博客网 时间:2024/06/06 17:14
  • Python对象赋值
will = ["Will", 28, ["Python", "C#", "JavaScript"]]wilber = willprint id(will)print willprint [id(ele) for ele in will]print id(wilber)print wilberprint [id(ele) for ele in wilber]will[0] = "Wilber"will[2].append("CSS")print id(will)print willprint [id(ele) for ele in will]print id(wilber)print wilberprint [id(ele) for ele in wilber]

结果输出为:

这里写图片描述

分析结果:
首先,创建了一个名为will的变量,这个变量指向一个list对象,从第一张图中可以看到所有对象的地址(每次运行,结果可能不同)
然后,通过will变量对wilber变量进行赋值,那么wilber变量将指向will变量对应的对象(内存地址),也就是说”wilber is will”,”wilber[i] is will[i]”
可以理解为,Python中,对象的赋值都是进行对象引用(内存地址)传递

第三张图中,由于will和wilber指向同一个对象,所以对will的任何修改都会体现在wilber上
这里需要注意的一点是,str是不可变类型,所以当修改的时候会替换旧的对象,产生一个新的地址39758496
这里写图片描述

摘自:http://python.jobbole.com/82294/

原创粉丝点击