Python变量赋值的秘密分享


Posted in Python onApril 03, 2018

在Python中,我们令一个变量等于另外一个变量时,并不是把值传递给它,而是直接把指向的地址更改了。我们想要查看一个变量在内存中的地址,可以通过id(变量) 来查看。我们通过一个小例子来看看这个有趣的过程。

>>> x = 12
>>> y= 13
>>> id(x)
>>> id(y)
>>> x = y
>>> id(x)
>>> id(y)

首先给x变量赋值为12,y变量赋值为13,我们用id(变量)分别查看x和y在内存中的位置。上面显示分别为1865402384和1865402416。然后我们令x = y后,再查看一下它们在内存中的位置,发现x 和 y都指向了1865402416。由此可见,在python中,我们赋值的方式和C语言有所不同,c语言直接更改x那块内存里面的值,而Python直接改变x的指向,这让我想起了指针。

Python变量赋值的秘密分享

我们接着尝试一下,继续在这里输入下面的代码

>>> y = 12
>>> id(y)
1865402384

天!发生了什么??y在内存中的地址又变成1865402384了,准确说,y又指向了1865402384这块内存区域了。这样一看,和C语言的指针还真的很像呢。

Python 相关文章推荐
Python深入学习之特殊方法与多范式
Aug 31 Python
用Python代码来绘制彭罗斯点阵的教程
Apr 03 Python
django 创建过滤器的实例详解
Aug 14 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
python 操作hive pyhs2方式
Dec 21 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
Python字符串格式化常用手段及注意事项
Jun 17 Python
Keras搭建自编码器操作
Jul 03 Python
使用pytorch实现线性回归
Apr 11 Python
opencv检测动态物体的实现
Jul 21 Python
python中字符串变二维数组的实例讲解
Apr 03 #Python
numpy找出array中的最大值,最小值实例
Apr 03 #Python
Python获取二维矩阵每列最大值的方法
Apr 03 #Python
Python中的并发处理之asyncio包使用的详解
Apr 03 #Python
图解Python变量与赋值
Apr 03 #Python
Python实现的HMacMD5加密算法示例
Apr 03 #Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 #Python
You might like
PHP中图片等比缩放的实例
2013/03/24 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Python性能优化技巧
2015/03/09 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
公司端午节活动方案
2014/02/04 职场文书
2014年国庆节寄语
2014/09/19 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
Go语言入门exec的基本使用
2022/05/20 Golang