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 字典(Dictionary)操作详解
Mar 11 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
详解python中的json和字典dict
Jun 22 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
python3.4爬虫demo
Jan 22 Python
python3.7 的新特性详解
Jul 25 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
Python定义一个函数的方法
Jun 15 Python
详解torch.Tensor的4种乘法
Sep 03 Python
Python 随机按键模拟2小时
Dec 30 Python
python+opencv实现目标跟踪过程
Jun 21 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
获得Google PR值的PHP代码
2007/01/28 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php接口技术实例详解
2016/12/07 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
$()JS小技巧
2007/07/21 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
AngularJS入门之动画
2016/07/27 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python 字典dict使用介绍
2014/11/30 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python实现爬虫下载美女图片
2015/07/14 Python
django url到views参数传递的实例
2019/07/19 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
餐厅考勤管理制度
2014/01/28 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
vue动态绑定style样式
2022/04/20 Vue.js