Python 对象保存优化机制

news2025/1/12 15:58:42
Python 为了减少开销与内存的使用而设置一些规则:
* 1. 但凡是不可变对象, 在同一个代码块中的对象, 只要是值相同的对象,
就不会重复创建, 而是直接引用已经存在的对象.

交互环境下: 不写在一行, 字符类型数据指向一个内存地址, 整型超出小整数则执指向不同的地址.
代码块缩进相同的语句是一个代码块, 小整数池范围是[-5 到 256], 后续会说.

脚本运行: 不管是否同一行, 都是指向同一个地址.
# 脚本运行
num1 = 1
num2 = 1

print(num1 is num2)  # True

num3 = 277
num4 = 277
print(num3 is num4)  # True

Python 3.9.4 (tags/v3.9.4:1f2e308, Apr  6 2021, 13:40:21) 
[MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> num1 = 1
>>> num2 = 1
>>> num1 is num2
True
# 写在同一行
>>> num3 = 277; num4 = 277
>>> num3 is num4
True
# 分行写
>>> num3 = 277
>>> num4 = 277
>>> num3 is num4
False
>>>

image-20221119233829977

* 2. 计算得到的值, 交互环境下, 没有赋值给变量时, 会直接引用已经存在的对象内存地址.
      脚本运行, 计算得到的值, 赋值不赋值都直接引用.
# 脚本运行
num1 = 3.0
print(9/3 is num1)  # True

num2 = 9/3
print(num2 is num1)  # True

语法警告忽略即可, 它认要做值比较推荐使用 '==' .
英 SyntaxWarning: "is" with a literal. Did you mean "=="?
英 语法警告: "is"带有文字。你是说"=="吗?
Python 3.9.4 (tags/v3.9.4:1f2e308, Apr  6 2021, 13:40:21) 
[MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> num1 = 3.0
>>> 9/3 is num1
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False
>>> num2 = 9/3
>>> num2 is num1
False
>>>

image-20221120000446898

文章的段落全是代码块包裹的, 留言0是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言1是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言2是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言3是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言4是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言5是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言6是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言7是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言8是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言9是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言10是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言11是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言12是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言13是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言14是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言15是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言16是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言17是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言18是为了避免文章提示质量低.
文章的段落全是代码块包裹的, 留言19是为了避免文章提示质量低.


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hexo搭建Github博客教程

CONTENTS1. 环境配置2. 本地博客搭建3. 部署至Github4. 博客主题设置1. 环境配置 &#xff08;1&#xff09;安装Git Bash&#xff1a;Windows安装配置Git教程&#xff08;2022.11.18 Git2.38.1&#xff09;。 &#xff08;2&#xff09;安装NodeJS&#xff1a;NodeJS的安装及…

基于51单片机的花样流水灯设计

资料编号&#xff1a;113 下面是相关功能视频演示&#xff1a; 113-基于51单片机的花样流水灯设计&#xff08;源码仿真设计报告&#xff09;功能讲解&#xff1a; 采用51单片机的IO控制多个LED灯&#xff0c;实现多种模式的流水灯&#xff0c;全套资料齐全&#xff1a;流水灯…

Aspose.OCR for Java Crack by Xacker

Aspose.OCR for Java 允许您从图像、屏幕截图、图像的特定区域中提取文本&#xff0c;并在任何支持 Java 的平台上从扫描文件创建可搜索的 PDF。凭借其强大且易于使用的 API&#xff0c;即使是复杂的 OCR 任务也只需不到 10 行代码。您无需使用公式和机器学习 - 该库将处理所有…

<C++>深度学习继承

目录 一、继承概念 二、继承的语法 2.1继承关系和访问限定符 2.2派生类继承基类后的成员权限 三、基类和派生类的对象赋值转换 四、继承中的作用域 五、派生类的默认成员函数 六、继承与友元 七、继承与静态成员 八、复杂的菱形继承及菱形虚拟继承 单继承&am…

CS下载、安装以及简单使用

Cobalt Strike4.0中文版下载 渗透利器CobaltStrike 4.0 免费汉化版(含原版补丁) 下载-脚本之家 (jb51.net)下载解压&#xff0c;有中文版本和原版 server&#xff1a;kali&#xff08;自带Java环境&#xff09; clinet&#xff1a;win10 这里直接把原版拖进kali运行不了&#x…

买卖股票的最好时机(一、二)

目录 买卖股票的最好时机(一) 动态规划解决 贪心思想解决 买卖股票的最好时机(二) 贪心思想解决 动态规划解决 买卖股票是经典的动态规划问题&#xff0c;在动态规划的学习与练习中&#xff0c;最令我煎熬的就是状态方程递推&#xff0c;经常出现状态定义好后&#xff0c…

【毕业设计】10-基于单片机的车站安检门/磁性霍尔传感器系统设计(原理图+源码+仿真工程+论文)

【毕业设计】10-基于单片机的车站安检门/磁性霍尔传感器系统设计&#xff08;原理图源码仿真工程论文&#xff09; 文章目录【毕业设计】10-基于单片机的车站安检门/磁性霍尔传感器系统设计&#xff08;原理图源码仿真工程论文&#xff09;资料下载链接任务书设计说明书摘要设计…

css的三种引入方式

目录 三种引入方式 1.行内样式 2.内部样式(内嵌式) 3.外部样式 3.1外链式 3.2导入式 引入方式的优先级 三种引入方式 1.行内样式 行内样式就是直接把css样式添加在HTML标签中,作为style样式的属性值 <!-- 行内/内嵌/嵌入式/内联样式 --><!-- 背景颜色 backgr…

动力节点索引优化解决方案学习笔记——查询优化

3.查询优化 创建一张测试表并插入数据&#xff1a; drop table if exists students; CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT COMMENT "主键id",sname VARCHAR (24) COMMENT 学生姓名,age INT COMMENT 年龄,score INT COMMENT 分数,time TIMEST…

微服务与中间件系列——GateWay整合Swagger3增强Knife4j

微服务与中间件系列——GateWay整合Swagger3增强Knife4jGateWay整合Swagger3增强Knife4j&#xff08;easy模式&#xff09;目的服务端1.导入依赖2.编写配置类3.yaml配置GateWay网关1.文档枚举2.SwaggerProvider3.yaml配置结果增强版服务端1.增加配置参数类2.修改配置类3.修改ya…

Spring框架一文带你吃透IOC技术

本文目录 文章目录本文目录✨loC的技术实现✨实现步骤✨创建接口和实现类✨创建Spring的配置文件和声明bean✨创建spring容器对象✨spring容器创建对象的特点✨创建非自定义类的对象✨创建没有接口的类的对象✨获取容器中对象的信息loC&#xff0c;Inversion ofControl:控制反转…

肿瘤NGS测序行业背景介绍

肿瘤NGS测序行业背景介绍1、行业基本情况1.1 行业分类1.2 主管部门1.3 行业监管1.4 行业法规1.5 医保报销流程2、肿瘤基本介绍2.1 肿瘤基础概念2.2 癌症分期2.3 致癌风险2.4 肿瘤早期检测3、分子诊断在肿瘤早检的场景3.1 传统肿瘤早期检测方式3.2 分子诊断3.3 技术性能评价指标…

SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.9 MongoDB 下载与安装

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇4 数据层解决方案4.9 MongoDB 下载与安装4.9.1 MongoDB 下载4.9.2 安…

PLATFORMIO学习文档之esp8266 驱动SSD1306 128x64OLED显示屏示例

写文章也是为了记录自己的学习过程&#xff0c;顺便给后来人指指路&#xff0c;迷路了可别怪我~~~~~~ 开发环境&#xff1a;PLATFORMIO 1、首先上一张我用的ESP8266开发板ESP-12E 首先新建一个工程&#xff0c;输入项目名称&#xff0c;选择自己所用的开发板&#xff0c; …

灵界的科学丨二、耳朵及手指识字的实验启示

摘自李嗣涔教授《灵界的科学》 如果有一天&#xff0c; 能教会盲人用手指或耳朵来「看」&#xff0c; 用触觉来取代眼睛&#xff0c; 人类社会中&#xff0c;将不再存在「盲」这种残疾。 发现人体潜能――耳朵与手指识字 眼睛可以观赏五彩缤纷的世界&#xff0c;耳朵可以听…

Joe 主题 Halo 移植版搭建部署教程

搭建成功之后的效果图如下 Halo安装部署 Docker 安装 Halo docker pull halohub/halo:1.5.4 # docker 从远程仓库下载镜像 docker run -it -d --name fl1906 -p 666:8090 -v ~/fl1906:/root/.halo halohub/halo:1.5.4 --restartalwaysdocker run -it -d --name walktop -p 7…

【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法

系列文章目录 【算法系列】卡尔曼滤波算法 【算法系列】非线性最小二乘求解-直接求解法 【算法系列】非线性最小二乘求解-梯度下降法 【算法系列】非线性最小二乘-高斯牛顿法 【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法 文章目录 系列文章 文章目录 前言 …

期末网页设计作业素材 (民宿 5页 带地图)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 CSS&…

JSON解析看这一篇就够了

目录 文章目录[toc]一、JSON是什么 &#xff08;&#xffe3;︶&#xffe3;&#xff09;↗总而言之&#xff1a;二、为什么要用JSON三、不同的JSON解析方式3.1 gson和[fastjson](https://so.csdn.net/so/search?qfastjson&spm1001.2101.3001.7020)简而言之3.2 gson案例3.…

15.Servlet

目录 1.Servlet的日常开发 1.WebServlet(...此处填写资源路径) 1.那么什么时候Tomcat会启动失败&#xff1f; 2.响应体是文本内容&&字符集编码是uft-8 3.读取请求参数 4.资源的重定向&#xff08;redirect&#xff09; 2.面试问题&#xff1a;GET和POST有什么区…