Python中内存和变量管理
1、在 Python中,采用的是基于值的内存管理方式,每个值在内存中只有一份存储。如果给多个变量赋相同的值(如数值类型、字符串类型、元组),那么多个变量存储的都是指向这个值的内存地址,即id。也就是说,Python中的变量并没有存储变量的值,而是存储指向这个值的地址或引用。
示例1:
a=3
b=3
c=1
print("a is b结果:"+str(a is b)) #True
print("a is c结果:"+str(a is c)) #False
print("id(a)=%d,id(b)=%d,id(c)=%d"%(id(a),id(b),id(c)))
运行结果如下图所示:
示例2:
a=(1,2,3)
b=(1,2,3)
c=(1,1,1)
print("a is b结果:"+str(a is b)) #元组不变性
print("a is c结果:"+str(a is c))
print("id(a)=%d,id(b)=%d,id(c)=%d"%(id(a),id(b),id(c)))
运行结果如下图所示:
2、对于组合数据(如列表、字典和集合。注意元组除外)而言,每次创建一个组合数据对象,都会重新给其分配内存。因此,给具有相同内容的组合数据变量分配的内存地址不同。
示例3:
a=['a','b','c'] #列表
b=['a','b','c']
c=['a','a','a']
print("a is b结果:"+str(a is b))
print("a is c结果:"+str(a is c))
print("id(a)=%d,id(b)=%d,id(c)=%d"%(id(a),id(b),id(c)))
运行结果如下图:
3、Python具有自动内存管理功能,会跟踪所有的值,自动删除不再有变量指向的值。因此,Python程序员一般不用考虑内存管理的问题。
Python中内存和变量管理相关推荐
- Python中内存管理的问题
Python中内存管理的问题 pyqtgraph实时显示占用内存 删除变量释放内存 后记 我的环境是python3+SublimeText.python是解释型语言,平常对内存关注得不多. pyqtg ...
- 为什么python中不需要变量名和变量类型声明?
python是解释型语言,python的变量不需要声明,但是需要初始化,python解释器会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同),其中变量其实通过一个标记调用内存中的值 ...
- python中的class怎么用_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python是什么语言、即变量不需要显示声明数据类型-python中可以声明变量类型吗...
变量(variable)是Python语言中一个非常重要的概念.变量的主要作用就是为Python程序中的某个值起一个名字.类似于"张三"."李四"." ...
- python中class变量_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python静态变量计数器_如何在Python中使用静态变量在计数
今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...
- python下列合法的变量名是什么,python中的合法变量名有什么规则-Python教程
python中非法变量名的规定有:一.能够由字母.数字.下划线组成,同时,不克不及以数字扫尾:二.不克不及是python要害字,但能够蕴含要害字:三.不克不及蕴含空格.例如:[a1c_x2z]. Py ...
- python中内存管理机制一共分为多少层_python 内存管理机制
内存管理机制 python中万物皆对象,python的存储问题是对象的存储问题,并且对于每个对象,python会分配一块内存空间去存储它 Python的内存管理机制:引入计数.垃圾回收.内存池机制 ...
- Python中的高级变量类型
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
最新文章
- iOS下音视频通信-基于WebRTC
- Hibernate和MyBatis的缓存机制和比较
- 揭秘Windows Server 2008新功能
- redhat linux防火墙状态,Redhat下配置iptables防火墙
- 人声混音处理的基本步骤和常用插件
- AC97 与 HD audio的区别
- hadoop-hive安装
- 如何删除tmp计算机桌面,temp文件删不掉怎么办
- MIMO-OFDM学习笔记(传播与衰落)
- 《非常网管:网络管理从入门到精通(修订版)》——第1章 网络基础知识回顾1.1 计算机网络基础...
- OpenSSL自建CA和颁发SSL证书
- 【bzoj 4554】【Tjoi2016Heoi2016】【NOIP2016模拟7.12】游戏
- 攻防世界-Web-练习区12题解
- bzoj-1233 [Usaco2009Open]干草堆tower
- Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能
- 【M365运维】查看电脑硬盘加密状态是否同步到 Intune
- 绝对值不等式解绝对值二次函数的最值_Simplelife_新浪博客
- linux amd显卡双屏,显示器的合理利用 ati显卡双屏详细设置【图文】
- zabbix===》微信报警、聚合图形、自动发现自动注册、监控NFS、MySQL、web服务、URL地址
- 初中信息技术计算机软件系统,初中信息技术计算机系统组成(硬件).ppt
热门文章
- 粉尘传感器ZPH01驱动
- 缺省(默认)VLAN
- 新的百亿 IoT 市场:2022年起,新车强制安装EDR!
- kali driftnet
- Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2) E. Array Game
- 极客日报第 33 期:美团回应“大数据杀熟”;Docker开发者预览版支持M1芯片
- 用java实现combin函数_【算法-Java实现】组合总和
- Java实现模拟斗地主洗牌发牌
- 动荡下的科学投资 ”量加“掀起新一代炒股体验
- tf.nn.lrn() 局部响应归一化函数