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


Posted in Python onDecember 04, 2013
a = 3
b = a

先上图(图1)吧,大家一看就一目了然了:

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

变量名和对象,在运行赋值语句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]

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

从我的理解上来解释的话: 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读写ini配置文件方法实例分析
Jun 30 Python
python简单获取数组元素个数的方法
Jul 13 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Tensorflow之Saver的用法详解
Apr 23 Python
Django 使用logging打印日志的实例
Apr 28 Python
python中ASCII码和字符的转换方法
Jul 09 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
Python装饰器用法实例分析
Jan 14 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
python函数返回多个值的示例方法
Dec 04 #Python
python sys模块sys.path使用方法示例
Dec 04 #Python
Python yield使用方法示例
Dec 04 #Python
python函数参数*args**kwargs用法实例
Dec 04 #Python
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 #Python
Python Web框架Pylons中使用MongoDB的例子
Dec 03 #Python
python将xml xsl文件生成html文件存储示例讲解
Dec 03 #Python
You might like
php实现快速排序的三种方法分享
2014/03/12 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
flask框架中勾子函数的使用详解
2018/08/01 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
什么是python的列表推导式
2020/05/26 Python
pandas数据处理之绘图的实现
2020/06/15 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
财务管理专业毕业生求职信
2014/06/02 职场文书
2014年化验员工作总结
2014/11/18 职场文书
社区端午节活动总结
2015/02/11 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
简爱读书笔记
2015/06/26 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android