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的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
numpy linalg模块的具体使用方法
May 26 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
python中pandas对多列进行分组统计的实现
Jun 18 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
SVG描边动画
2017/02/23 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
详解python3实现的web端json通信协议
2016/12/29 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
COS美国官网:知名服装品牌
2019/04/08 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
创联软件面试题笔试题
2012/10/07 面试题
实践单位评语
2014/04/26 职场文书
校园文明标语
2014/06/13 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL