【Python】内存、引用、驻留

简介: 【Python】内存、引用、驻留

1、变量皆是标签


如图所示,ab皆是便利贴,皆是标注,皆是引用。为什么这么说呢,代码复现一下。

1684134414645.jpg

如图可知,当向b中添加元素4时,a也产生了变化。并且ab前后的id值是没有产生任何变化的。面对这种现象,我们也把a或b叫做别名,他们都表示同一块内存地址。

1684134437720.jpg

1684134445069.jpg


2、引用分配给对象,而不是把对象分配给引用


为什么这么说呢?打个比方,a、b就像是人员分配,我们总是会把人员分配到地方,那么这个地方一定是一个既成事实。在python代码中同样如此,复现一下:

1684134457233.jpg

可以看出,赋值语句的右边先执行,先创建再赋值。那么此时是先实例化对象创建既成事实,再把引用分配给对象

1684134464287.jpg


3、==和is之间的不同


==:对比value是否相同 ; is:对比id是否相同。python代码复现一下:

1684134480542.jpg

好,可以看出确实如此。为什么此处值相同,id却不同呢。下面第4点会做出解释

1684134493458.jpg


4、内存驻留机制


结论:当值是不可变类型且存在这个值时,会直接引用。否则开辟新内存创建。这是因为python对不可变数据类型的驻留机制,它是一个python底层实现的内存优化机制。python代码复现一下:

1、当值为不可变类型时:

1684134504039.jpg

1684134513295.jpg

2、当值为可变类型时:

1684134523827.jpg

1684134534568.jpg

相关文章
|
1月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
188 2
|
2月前
|
传感器 数据采集 监控
Python生成器与迭代器:从内存优化到协程调度的深度实践
简介:本文深入解析Python迭代器与生成器的原理及应用,涵盖内存优化技巧、底层协议实现、生成器通信机制及异步编程场景。通过实例讲解如何高效处理大文件、构建数据流水线,并对比不同迭代方式的性能特点,助你编写低内存、高效率的Python代码。
152 0
|
3月前
|
监控 编译器 Python
如何利用Python杀进程并保持驻留后台检测
本教程介绍如何使用Python编写进程监控与杀进程脚本,结合psutil库实现后台驻留、定时检测并强制终止指定进程。内容涵盖基础杀进程、多进程处理、自动退出机制、管理员权限启动及图形界面设计,并提供将脚本打包为exe的方法,适用于需持续清理顽固进程的场景。
|
5月前
|
数据可视化 Linux iOS开发
Python测量CPU和内存使用率
这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。
230 22
|
8月前
|
监控 Java 计算机视觉
Python图像处理中的内存泄漏问题:原因、检测与解决方案
在Python图像处理中,内存泄漏是常见问题,尤其在处理大图像时。本文探讨了内存泄漏的原因(如大图像数据、循环引用、外部库使用等),并介绍了检测工具(如memory_profiler、objgraph、tracemalloc)和解决方法(如显式释放资源、避免循环引用、选择良好内存管理的库)。通过具体代码示例,帮助开发者有效应对内存泄漏挑战。
411 1
|
10月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
240 3
|
11月前
|
算法 Java 程序员
Python内存管理机制深度剖析####
本文将深入浅出地探讨Python中的内存管理机制,特别是其核心组件——垃圾收集器(Garbage Collector, GC)的工作原理。不同于传统的摘要概述,我们将通过一个虚拟的故事线,跟随“内存块”小M的一生,从诞生、使用到最终被回收的过程,来揭示Python是如何处理对象生命周期,确保高效利用系统资源的。 ####
119 1
|
11月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
114 1
|
11月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
11月前
|
监控 Java API
Python是如何实现内存管理的
Python是如何实现内存管理的
183 1

推荐镜像

更多
下一篇
开通oss服务