码迷,mamicode.com
首页 > 编程语言 > 详细

【转】python共享引用(多个变量引用)示例代码

时间:2014-08-13 01:01:04      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:http   ar   art   div   代码   htm   .net   python   

python共享引用(多个变量引用)示例代码_python_脚本之家
http://www.jb51.net/article/44109.htm

 

python单个(一个)对象被多个变量引用又是怎么一回事儿呢?看下面代码


a = 3
b = a
 
 

先上图(图1)吧,大家一看就一目了然了:
bubuko.com,布布扣

变量名和对象,在运行赋值语句b = a之后,变量a,b都指向了对象3的内存空间. 假设这时执行 a = ‘python‘, a将指向刚创建的字符串对象。 我们再来试试这种情况:

 


>>>list_1 = [1,2,3,4]
>>>list_2 = list_1
>>>list_2
>>>list_1[0] = ‘python‘
>>>list_2
 

 

result:
[1,2,3,4]
[‘python‘,2,3,4]
 

bubuko.com,布布扣

 

从我的理解上来解释的话: list是一个类型对象,而对象里的每一个元素可以看成是变量,去引用了不同内存空间的对象list_1 = [1,2,3,4]是让list_1指向list的内存空间,list_2 = list_1时,他们将指向同一个内存空间。当List_1[0]改变指向时,list_2依然指向list对象的,所以看是改变list_1[0]的值,实际上是python通过list_1直接到内存空间去做了修改,list_2的指向没有任何变量。 或许这种结果并不是我们想要的。如果你不想要这样的现象发生,需要python对象拷贝,而不是创建引用。 如:
bubuko.com,布布扣

 

【转】python共享引用(多个变量引用)示例代码,布布扣,bubuko.com

【转】python共享引用(多个变量引用)示例代码

标签:http   ar   art   div   代码   htm   .net   python   

原文地址:http://www.cnblogs.com/sikongluoxing/p/3908723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!