python共享引用(多个变量引用)示例代码
2013-12-04 00:00
686 查看
a = 3 b = a
先上图(图1)吧,大家一看就一目了然了:
变量名和对象,在运行赋值语句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]
从我的理解上来解释的话: 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对象拷贝,而不是创建引用。
如:
相关文章推荐
- python共享引用(多个变量引用)示例代码
- 【转】python共享引用(多个变量引用)示例代码
- 对python创建及引用动态变量名的示例讲解
- Python中对象的引用与复制代码示例
- python 共享引用:多个变量引用同一对象
- ThreadLocal实现线程范围的共享变量 代码示例
- Java线程重复执行以及操作共享变量的代码示例
- python 实现A*算法的示例代码
- python实现协同过滤推荐算法完整代码示例
- Python scikit-learn 做线性回归的示例代码
- Python selenium实现微博自动登录的示例代码
- 内存共享代码示例
- python 共享引用
- Python-变量对象引用
- VC建立与修改共享内存区示例代码
- python开源项目及示例代码
- Python global全局变量只能在函数中没做global申明,可以引用但修改会报错。
- Python面向对象编程——类、对象、属性、方法示例代码
- python下多线程简单代码示例
- Python下线程之间的共享和释放示例