什么是小数据池

小数据池是python中提高效率的一种方式,固定数据类型的相同值使用同一内存地址。

  id 用于获取开辟空间的内存地址

  代码块 一个文件,一个模块,一个函数,一个类,终端中的每一行代码都是一个代码块

  is 判断两个变量的内存地址是否相同

  == 判断等号两边的值是否相同

数据在python中是通过字典的方式进行存储的

如果是同一代码块中的两个变量在某种情况下也会产生驻留,先执行代码块,如果不符合代码块再执行小数据池

注:如果"is"判断相同 "=="一定相同

如果"=="判断相同"is"不一定相同

小数据池规则 (小数据池仅支持 str , int , bool)

  • 支持数字范围 -5 ~ 256
  • 字符串在做乘法的时候总长度不能超过20
  • 自定义的字符串长度不限制,但是字符串必须由(字母,数字,下划线)组成
  • 特殊字符(中文除外)定义一个的时候驻留
  • 字符串*1其实就是赋值(赋值时两个变量使用同一内存地址)

代码块规则

  1. 数字全部驻留

  2. 字符串做乘法的时候总长度不能超过20

  3. 自定义的都驻留

  4. 字符串*1其实就是赋值

  5. Python3.7 字符串做乘法的时候总长度不能超过4096

通过 Python的内置模块 intern 可以实现主动驻留

浅谈Python小数据池的更多相关文章

  1. 小学生都能学会的python(小数据池)

    小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...

  2. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. ...

  3. python 小数据池,代码块, is == 深入剖析

    python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...

  4. python -- 小数据池 is和 == 再谈编码

    1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...

  5. python小数据池 is和 == 再谈编码

    1. 小数据池, id() 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. id() 查看变量的内存地址 2. is和==的区别 is 比较的是内存地址 == ...

  6. python 小数据池 is和 == 编码解码

    ########################总结######################### 今日主要内容 1. 小数据池, id() 小数据池针对的是: int, str, bool 在p ...

  7. python 小数据池,is and "==",decode ,encode

    一:小数据池 1.python运行中的缓存: 2.目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 3.python 缓存数据:缓存:int, str, bool.         ...

  8. python小数据池,代码块知识

    一.什么是代码块? 根据官网提示我们可以获知: A Python program is constructed from code blocks. A block is a piece of Pyth ...

  9. python小数据池概念以及具体范围

    =   赋值符号:        ==  比较值是否相等:   is  比较,比较的是内存地址      ID(内容) 数字,字符串的小数据池 小数据池现象产生的原因,作用: 为了节省内存空间. &l ...

随机推荐

  1. spss modeler出现使用错误提

    spss modeler出现使用错误提 1.对字段"compensation汇总导出"指定的类型不充分 问题: 为了分析需要,我加了一个"字段选项"--&quo ...

  2. 使用APOC技术从MYSQL数据库导数据到Neo4j图数据库(JDBC)

                                                     Neo4j 数据导入 一.安装与部署Neo4j 直接在官网下载安装包安装,解压即可. 2.mysql ...

  3. 13-8-return的高级使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. LeetCode 8.字符串转换整数 (atoi)(Python3)

    题目: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该 ...

  5. 2019-8-30-WPF-一个性能比较好的-gif-解析库

    title author date CreateTime categories WPF 一个性能比较好的 gif 解析库 lindexi 2019-08-30 08:59:45 +0800 2018- ...

  6. 关于jar包启动遇到的问题

    一.找不到propertites文件,错误如下 原因是打成的jar不包含classpath信息,需要运行时指定,命令为 -Xbootclasspath/a: 后缀在核心class搜索路径后面.常用! ...

  7. Python全栈开发:基本数据类型

    1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2 ...

  8. jmeter遇到的问题之Windows读取jtl文件出错

    问题描述 ① 使用linux运行jmeter.jmx文件后生成result.jtl文件 jmeter -n -t /tmp/jmeter.jmx -l /tmp/testresult/result.j ...

  9. Android之divider分割线的使用

    1.divider分割线 三种实现方式:(1)添加一个view,(2)通过shape实现,(3)通过设置图片实现 相关属性:设置分割线,分割线位置(none(无),begining(开始),end(结 ...

  10. iOS之CGAffineTransform属性详解和方法使用

    1.CGAffineTransform简介 UIView有个属性transform,是CGAffineTransform类型.可以使其在二维界面做旋转.平移.缩放单独或者组合动画! CGAffineT ...