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 29 Python
Python实现备份文件实例
Sep 16 Python
Python版微信红包分配算法
May 04 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
简单了解python单例模式的几种写法
Jul 01 Python
python输出带颜色字体实例方法
Sep 01 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 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缓存技术介绍
2006/11/25 PHP
PHP Mysql编程之高级技巧
2008/08/27 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
使用vue构建移动应用实战代码
2017/08/02 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python 多线程应用介绍
2012/12/19 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Python内置异常类型全面汇总
2020/05/28 Python
python中类与对象之间的关系详解
2020/12/16 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
欧克利英国官网:Oakley英国
2019/08/24 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
Ejb技术面试题
2015/04/29 面试题
好矿嫂事迹材料
2014/01/21 职场文书
大型营销活动计划书
2014/04/28 职场文书
土地租赁意向书
2014/07/30 职场文书
励志演讲稿200字
2014/08/21 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2014年团支书工作总结
2014/11/14 职场文书
社区工作者个人总结
2015/02/28 职场文书
解除租赁合同协议书
2016/03/21 职场文书