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实现删除文件与目录的方法
Nov 10 Python
python中引用与复制用法实例分析
Jun 04 Python
python实现SMTP邮件发送功能
Jun 16 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
浅谈Python traceback的优雅处理
Aug 31 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
pytorch实现手写数字图片识别
May 20 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
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python线程池threadpool实现篇
2018/04/27 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
人力资源主管职责范本
2014/03/05 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
写给导师的自荐信
2015/03/06 职场文书
就业导师推荐信范文
2015/03/27 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript