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之做一个小游戏
Sep 28 Python
简单介绍Python的Tornado框架中的协程异步实现原理
Apr 23 Python
详解python单例模式与metaclass
Jan 15 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
浅谈Python基础之I/O模型
May 11 Python
Python3 replace()函数使用方法
Mar 19 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
pyqt5之将textBrowser的内容写入txt文档的方法
Jun 21 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python如何通过pyqt5实现进度条
Jan 20 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
Python wordcloud库安装方法总结
Dec 31 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
如何删除多级目录
2006/10/09 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python生成圆形图片的方法
2020/03/25 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
python 获取url中的参数列表实例
2018/12/18 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
python模拟实现分发扑克牌
2020/04/22 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
大堂副理的岗位职责范文
2014/02/17 职场文书
班主任班级寄语大全
2014/04/04 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
村官个人总结范文
2015/03/03 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang