没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
变量的存储 在高级语言中,变量是对内存及其地址的抽象。 对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身。 引用语义:在python中,变量保存的是对象(值)的引用,我们称为引用语义。采用这种方式,变量所需的存储空间大小一致,因为变量只是保存了一个引用。也被称为对象语义和指针语义。 值语义:有些语言采用的不是这种方式,它们把变量的值直接保存在变量的存储区里,这种方式被我们称为值语义,例如C语言,采用这种存储方式,每一个变量在内存中所占的空间就要根据变量实际的大小而定,无法固定下来。 由于pyt
资源推荐
资源详情
资源评论
python变量的存储原理详解变量的存储原理详解
变量的存储变量的存储
在高级语言中,变量是对内存及其地址的抽象。
对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身。
引用语义:引用语义:在python中,变量保存的是对象(值)的引用,我们称为引用语义。采用这种方式,变量所需的存储空间大小一致,因为变量只是保存了一个引用。也被称为对象语义和指
针语义。
值语义:值语义:有些语言采用的不是这种方式,它们把变量的值直接保存在变量的存储区里,这种方式被我们称为值语义,例如C语言,采用这种存储方式,每一个变量在内存中所占的空
间就要根据变量实际的大小而定,无法固定下来。
由于python中的变量都是采用的引用语义,数据结构可以包含基础数据类型,导致了在python中每个变量中都存储了这个变量的地址,而不是值本身;
对于复杂的数据结构来说,里面的存储的也只只是每个元素的地址而已,下面给出基础类型和数据结构类型变量重新赋值的存储变化:
1.数据类型重新初始化对数据类型重新初始化对python语义引用的影响语义引用的影响
变量的每一次初始化,都开辟了一个新的空间,将新内容的地址赋值给变量。对于下图来说,我们重复的给str1赋值,其实在内存中的变化如下右图:
从上图我们可以看出,str1在重复的初始化过程中,是因为str1中存储的元素地址由’hello world’的地址变成了’new hello world’的。
2.数据结构内部元素变化重对数据结构内部元素变化重对python语义引用的影响语义引用的影响
对于复杂的数据类型来说,改变其内部的值对于变量的影响:
当对列表中的元素进行一些增删改的操作的时候,是不会影响到lst1列表本身对于整个列表地址的,只会改变其内部元素的地址引用。可是当我们对于一个列表重新初始化(赋值)的时
候,就给lst1这个变量重新赋予了一个地址,覆盖了原本列表的地址,这个时候,lst1列表的内存id就发生了改变。上面这个道理用在所有复杂的数据类型中都是一样的。
变量赋值变量赋值
1.str的赋值的赋值
资源评论
weixin_38743076
- 粉丝: 7
- 资源: 925
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Kotlin与Java跨平台实现的arc进度条设计源码
- 源代码-仿MOP对开式论坛程序.zip
- 基于Python实现的BGP路由协议本科毕业设计源码
- 基于C语言的GEMM矩阵乘法优化设计源码学习与应用
- 基于Java的电影票出售系统设计源码
- 基于Python和Web技术栈的公文传输系统设计源码
- 基于Kolmogorov-Arnold网络(KAN)的激光选区熔化(LPBF)孔隙缺陷声学监测算法设计与实现源码
- 基于C/C/Python的多功能.hcxtools:.cab转.hc22000格式转换工具源码
- 源代码-仿Google网站AJAX拖曳实例ASP保存数据.zip
- 基于Java语言,支持Python和HTML的Flask框架设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功