Python代码块及缓存机制原理详解

yipeiwu_com5年前Python基础

这篇文章主要介绍了Python代码块及缓存机制原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.相同的字符串在Python中地址相同

s1 = 'panda'
s2 = 'panda'
print(s1 == s2) #True
print(id(s1) == id (s2)) #True

2.代码块:

所有的代码都需要依赖代码块执行。

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

​ 交互式命令中, 一行就是一个代码块

3.缓存机制:

同一代码块下的缓存机制

​ 适用对象:int(float),bool,str

​ 具体细则:所有的数字,bool(1,0),几乎所有的字符串(字符串×数字时会有不同的情况)

​ 同一代码块内:初始化命令时 先检查内存中 的 字典有无 已创建的相同的数据,如果有相同数据, 则会共用同一内存地址,

​ 优点:节省内存,提升性能

​ 不同代码块下的缓存机制 (小数据池)

​ 适用对象:int(float),bool,str

​ 具体细则:-5~256 范围内的数字,以及满足规则的字符串

​ 优点:节省内存,提升性能

总结:

  • 同一个 代码块下一个缓存机制,不同的代码块下另一个缓存机制(小数据池)
  • 小数据池 数字范围 -5~256
  • 共同优点:节省内存,提升性能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 堆和优先队列的使用详解

1.heapq python里面的堆是通过在列表中维护堆的性质实现的。这一点与C++中heap一系列的算法类似,底层是通过堆vector的维护获取堆的性质。 关于二叉树 二叉树的...

python3读取MySQL-Front的MYSQL密码

前言 同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL-Front。 MySQL-Front就一款开源的mysql管理工具,官方网站http://www.my...

python中的多重继承实例讲解

python中的多重继承实例讲解

python和C++一样,支持多继承。概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性。 对经典类...

详解Django框架中用context来解析模板的方法

你需要一段context来解析模板。 一般情况下,这是一个 django.template.Context 的实例,不过在Django中还可以用一个特殊的子类, django.templ...

django解决订单并发问题【推荐】

并发处理 在多个用户同时发起对同一个商品的下单请求时,先查询商品库存,再修改商品库存,会出现资源竞争问题,导致库存的最终结果出现异常。 解决办法: 悲观锁 当查询某条记录时,即让数...