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实现调用其他python脚本的方法
Oct 05 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
django 修改server端口号的方法
May 14 Python
Tesserocr库的正确安装方式
Oct 19 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
python模块导入的方法
Oct 24 Python
Django框架安装方法图文详解
Nov 04 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
python中关于数据类型的学习笔记
Jul 19 Python
Python threading模块condition原理及运行流程详解
Oct 05 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/10/09 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
javascript实现点击星星小游戏
2019/12/24 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python连接Redis的基本配置方法
2018/09/13 Python
python模糊图片过滤的方法
2018/12/14 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
jupyter实现重新加载模块
2020/04/16 Python
Solaris操作系统的线程机制
2015/07/28 面试题
二年级数学教学反思
2014/01/21 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
表彰会主持词
2014/03/26 职场文书
2014年党务公开方案
2014/05/08 职场文书
政治学求职信
2014/06/03 职场文书
在职证明书模板
2015/06/15 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang