Python小数据池,代码块

   今日内容一些小的干货       

  • 一. id is ==
  • 二. 代码块
  • 三. 小数据池
  • 四. 总结

 

python小数据池,代码块的最详细、深入剖析

  • 一. id is ==
  • 二. 代码块
  • 三. 小数据池
  • 四. 总结

一,id,is,==

在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址:

name = '太白'
print(id(name))  # 1585831283968

那么 is 是什么? == 又是什么?

== 是比较的两边的数值是否相等,而 is 是比较的两边的内存地址是否相等。 如果内存地址相等,那么这两边其实是指向同一个内存地址。

可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。

二,代码块。

根据官网提示我们可以获知:

 View Code

上面的主要意思是:

Python程序是由代码块构造的。块是一个python程序的文本,他是作为一个单元执行的。

代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块。

而作为交互方式输入的每个命令都是一个代码块。

什么叫交互方式?就是咱们在cmd中进入Python解释器里面,每一行代码都是一个代码块,例如:

而对于一个文件中的两个函数,也分别是两个不同的代码块:

OK,那么现在我们了解了代码块,这和小数据池有什么关系呢?且听下面分析。

代码块的缓存机制

Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其重用。换句话说:执行同一个代码块时,遇到初始化对象的命令时,他会将初始化的这个变量与值存储在一个字典中,在遇到新的变量时,会先在字典中查询记录,如果有同样的记录那么它会重复使用这个字典中的之前的这个值。所以在你给出的例子中,文件执行时(同一个代码块)会把i1、i2两个变量指向同一个对象,满足缓存机制则他们在内存中只存在一个,即:id相同。

代码块的缓存机制的适用范围: int(float),str,bool。

int(float):任何数字在同一代码块下都会复用。

bool:True和False在字典中会以1,0方式存在,并且复用。

str:几乎所有的字符串都会符合缓存机制,具体规定如下(了解即可!):

1,非乘法得到的字符串都满足代码块的缓存机制:

s1 = '太白@!#*ewq'
s2 = '太白@!#*ewq'
print(s1 is s2)  # True

2,乘法得到的字符串分两种情况:

  2.1 乘数为1时,任何字符串满足代码块的缓存机制:

b1 = '太白@5847395QQ0743895*&^%$#((&_+(())' *1
a1 = '太白@5847395QQ0743895*&^%$#((&_+(())' *1print(a1 is b1)  # True

  2.2 乘数>=2时:仅含大小写字母,数字,下划线,总长度<=20,满足代码块的缓存机制:

s1 = 'old_' * 5
s2 = 'old_' * 5
print(s1 is s2)  # True

 优点:能够提高一些字符串,整数处理人物在时间和空间上的性能;需要值相同的字符串,整数的时候,直接从‘字典’中取出复用,避免频繁的创建和销毁,提升效率,节约内存。

 

 

 

转载于:https://www.cnblogs.com/Py-king/p/10321547.html

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

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

相关文章

【Wax】使用Wax (framework方式,XCode 4.6)

前情提示&#xff1a;【Wax】使用Wax &#xff08;非framework方式&#xff0c;XCode 4.6&#xff09; 这次&#xff0c;将以framework的方式来使用Wax 那么&#xff0c;让我们开始吧&#xff01;&#xff01;&#xff01; 准备工作&#xff1a; 下载wax.framework&#xff1a;…

unity3d 简单动画

1&#xff0c;动画系统配置 创建游戏对象并添加Animation组件&#xff0c;然后将动画文件拖入组件。 进入动画文件的Debug属性面板 选中Legacy属性 选中游戏对象&#xff0c;打开Animation编辑窗口 添加动画变化属性 需改关键帧的属性值 配置完成后运行即可得到动画效果 2&…

3dmax导出到unity3d下分割动画

1、在3dmax 导出时候&#xff0c;要导出FBX文件&#xff0c;同时包含动画&#xff0c;骨骼&#xff0c;皮肤等内容 2、把FBX文件导入到Unity3d后会默认有一个超长的大动画&#xff0c;就是一个整体的动画&#xff0c;如图Take001&#xff0c;这个时候要分割哪部分是跑&#xf…

Unity3d之AssetBundle打包与读取

一、创建Assetbundle 在unity3d开发的游戏中&#xff0c;无论模型&#xff0c;音频&#xff0c;还是图片等&#xff0c;我们都做成Prefab&#xff0c;然后打包成Assetbundle&#xff0c;方便我们后面的使用&#xff0c;来达到资源的更新。 一个Assetbundle可以打包一个模型&…

unity3d 各个目录的意思

1.首先&#xff0c;你得理解Unity中各个目录的意思&#xff1f; 我这里说的是移动平台&#xff08;安卓举例&#xff09;&#xff0c;读&#xff0c;写。所谓读&#xff0c;就是你出大版本的包之后&#xff0c;这个只读的话&#xff0c;就一辈子就这些东西了&#xff0c;不会改…

asp.net core根据用户权限控制页面元素的显示

asp.net core根据用户权限控制页面元素的显示 Intro 在 web 应用中我们经常需要根据用户的不同允许用户访问不同的资源&#xff0c;显示不同的内容&#xff0c;之前做了一个 AccessControlHelper 的项目&#xff0c;就是解决这个问题的。 asp.net core 支持 TagHelper 和 基于 …

Java面向对象(二)

source:http://blog.java1234.com/index.html?typeId1 Java类的继承 1&#xff0c;继承定义以及基本使用 定义&#xff1a;子类能够继承父类的属性和方法&#xff1b; 注意点&#xff1a;Java中只支持单继承&#xff1b; 私有方法不能继承&#xff1b; 2&#xff0c;方法重写 …

游戏通讯方式

农药自从上线以来&#xff0c;依靠着强大的产品力以及腾讯的运营能力&#xff0c;在游戏市场上表现可谓是风生水起&#xff0c;根据第三方的调研数据显示&#xff0c;《王者荣耀》渗透率达到22.3%&#xff0c;用户规模达到2.01亿人&#xff0c;每日的日活跃用户&#xff08;DAU…

小小c#算法题 - 3 - 字符串语句反转

题目&#xff1a;反转语句。 如I love Beijing! 反转后输出 !Beijing love I 特点是指反转单词的顺序&#xff0c;其他字符&#xff08;这个可以自己指定&#xff09;不反转。且不能用内置函数&#xff0c;如Split和Substring。 分析&#xff1a;我们需要保证一个单词的字…

unity5.4.3p2里面的AssetBundle打包流程

unity5.4.3p2里面的AssetBundle打包流程&#xff0c;相比之前unity4.x的打包简单了许多&#xff0c;Unity4.X中打包的时候需要自己去管理依赖关系&#xff0c;各种BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()&#xff0c;一不小心手一抖&…

主成分分析(PCA)原理详解 2016/12/17 · IT技术 · 主成分分析, 数学 分享到: 21 原文出处: 中科春哥 一、PCA简介 1. 相关背景 主成分分析(Principa

主成分分析&#xff08;PCA&#xff09;原理详解 2016/12/17 IT技术 主成分分析, 数学 分享到&#xff1a;21原文出处&#xff1a; 中科春哥 一、PCA简介 1. 相关背景 主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;&#xff0c; 是一种统…

【Tensorflow】 Object_detection之训练PASCAL VOC数据集

参考&#xff1a;Running Locally 1、检查数据、config文件是否配置好 可参考之前博客&#xff1a; Tensorflow Object_detection之配置Training Pipeline Tensorflow Object_detection之准备数据生成TFRecord 2、训练模型 PIPELINE_CONFIG_PATH/data/zxx/models/research/date…

R文件报错的原因

一般R文件报错&#xff0c;无非是资源文件错误&#xff0c;图片命名错误&#xff0c;但是编译都会报错&#xff0c;可以很快解决。但是前几天&#xff0c;引入一个第三方aar包后&#xff0c;项目编译正确&#xff0c;但是就是R文件报错&#xff0c;找不到R文件&#xff0c;整个…

[转]Excel数据转化为sql脚本

在实际项目开发中&#xff0c;有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。 1 在数据前插入一列单元格&#xff0c;用来拼写sql语句。 具体写法&#xff1a;"insert into t_student (id,name,age…

void Update ( ) 更新 void FixedUpdate ( )

void Update ( ) 更新 void FixedUpdate ( ) 固定更新 相同点&#xff1a;当MonoBehaviour启用时&#xff0c;其在每一帧被调用&#xff0c;都是用来更新的。 异同点&#xff1a;第一点不同&#xff1a; Update()每一帧的时间不固定&#xff0c;即第一帧与第二帧的时间间隔t…

【点分治】luoguP2664 树上游戏

应该是一道中等难度的点分&#xff1f;麻烦在一些细节。 题目描述 lrb有一棵树&#xff0c;树的每个节点有个颜色。给一个长度为n的颜色序列&#xff0c;定义s(i,j) 为i 到j 的颜色数量。以及 现在他想让你求出所有的sum[i] 输入输出格式 输入格式&#xff1a; 第一行为一个整数…

EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team-》Easy Touch -》Add Easy Touch For C#

EasyJoyStick使用以及两种操作杆EasyJoyStick的使用方法&#xff0c;简单的不能再简单Hedgehog Team-》Easy Touch -》Add Easy Touch For C#Hedgehog Team-》Easy Touch -》Extensions-》Adding A New Joystick配置如图&#xff1a;然后看一下配置&#xff0c;我喜欢掌控性强一…

Web渗透实验:基于Weblogic的一系列漏洞

1. 攻击机windows10 192.168.2.104 2. 靶机ip: 192.168.2.109(linux Ubantu) 192.168.2.111(windows2008R264位) 第一步&#xff1a;启动靶机服务 分别为linux和windows windows环境搭建&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/16KyYb1v1rP9uJ6-5MBotVw   提取…

Unity3D 自动打包整个项目(以AssetBundle实现)

需求&#xff1a; 在移动开发中&#xff0c;手动控制资源的加载、释放和热更新&#xff0c;是很有必要的。 而Unity通过AssetBundle可以实现该需求&#xff0c;但是如果项目资源多起来的话一个个手动打包成AssetBundle则很麻烦。 而本文正为此提供一套一键打包的方案。 资源分…

Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑(转载)

转自&#xff1a;https://www.cnblogs.com/ibingshan/p/10334471.html Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 前言 基于 python27 的 pyc 很容易被反编译&#xff0c;于是想到了pyd&#xff0c;加速运行&#xff0c;安全保护 必要准备 安装cython&#xff1a;…