8.小数据池,代码块

15.小数据池

  • 小数据池就是python 中一种提高效率的方式,固定数据类型使用同一个内存地址
  • 小数据池----支持:str,int,bool
  • 前提:不同代码块的缓存机制
  • 缓存机制的优点:提升性能,节省内存。
  • 小数据池怎么用?
    a=1
    b=1
    #id 查看空间的内存地址  获取开辟空间的一种地址
    print(id(a))
    print(id(b))

    小数据池数字范围:-5~256

    字符串:

    1.字符串在做乘法的时候总长度不能超过20,进行驻留 # 记住
    2.自己定义的字符串 长度不限制 字符串必须(字母,数字.下划线)组成,进行驻留
    3.特殊字符(中文除外)定义1个时候,进行驻留
    4.字符串*1 其实就是赋值

16.代码块

代码块:一个文件,一个模块,一个函数,一个类,终端中每一行就是一个代码块。

前提:在同一个代码块内。

缓存机制的优点:提升性能,节省内存。

is 判断两个内存地址是否相同*** 如果is判断相同== 一定相同
==判断等号两边的值是否相同*** 如果==判断相同 is 不一定相同

代码块的规则:

数字:全部驻留

字符串:

  1. 字符串做乘法的时候总长度不能超过20
  2. 自己定义的都驻留
  3. 乘数为1的时候,就是赋值
  4. python3.7乘法的时候总长度不能超过4096

总结:

小数据池---支持:str,int ,bool

小数据池数字:-5-256

小数据池字符串:乘法是长度不能超过20

自己设置驻留:

需要使用python的内置模块

from sys import intern
a = intern("@@@@@@"*20)
b = intern("@@@@@@"*20)
print(a is b)        # 自己进行驻留

原文地址:https://www.cnblogs.com/pythonblogs/p/11004912.html

时间: 2024-10-09 04:06:22

8.小数据池,代码块的相关文章

python小数据池、代码块

一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是一个代码块. 什么叫交互方式?就是咱们在cmd中进入Python解释器里面,每一行代码都是一个代码块. 不同的代码块: def func(): print(333) class A: name = 'alex' 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块. for i

Python基础之小数据池及深浅拷贝

一.小数据池 == (等于) == 官方:判断等号两边的内容是否相同 ? 白话:判断两个人长得是不是一样 is ? 官方:判断两边的内容是不是一个 ? 白话:判断这两个人是不是一个人 a = 10000 b = 10000 print(a == b) is 是通过内存地址进行判断 print(id(a),id(b)) 输出结果 ,内存地址一致 代码块:一个py文件,一个函数,一个模块,一个类,交互模式(终端)下的每一行 先执行代码块,然后小数据池! 代码块机制内容:Python在执行同一个代码块

python 小数据池、代码块详解

首先我们来看看下面的问题,第一次遇到还以为见鬼了.                    看到上面这么多种情况刚开始直接就懵逼了.100ID一样,1000就不一样.终端运行情况居然会和pycharm不一样. 后面终于搞懂了,原来这里头有大学问,且看下面分析. 一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是一个代码块. 也就是说:       所

Python 代码块 小数据池

一  代码块 什么是代码块??? Python程序是由代码块构造的.先举一个例子: 1 for i in '12334567': 2 print(i) 1 def func(): 2 print('Hello,world!') 1 class A: 2 name = 'colin' 从上面的例子可以称为代码块,虽然上面的缩进的内容都叫代码块,但是他们并不是python中严格定义的代码块. 那么,python中真正意义上的代码块又怎么定义? 因此,我们定义:一个模块,一个函数,一个类,一个文件等都

pyhon学习第六天 代码块,小数据池(缓存机制,驻留机制),is == id =,字符编码

1.代码块 能够实现某项功能的:模块,函数,类,文件 ##在python的交互模式下,一行代码就是一个代码块分别储存在不同文件中 2. id is ==和= =是赋值 ==比较两边数据内容是否相等 is 比较内存地址是否一致(内存里的id都是唯一的) id() 查看数据的id地址 3.小数据池(缓存机制,驻留机制): 小数据池是python对内存做的一个优化 优化内容:python将-5到256的整数.以及一定规律的字符串提前在内存找那个创建了固定的储存空间 适用小数据池的数据类型:*****

python基础之小数据池、代码块、编码

一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块.python中真正意义的代码块是什么? 块是一个python程序的文本,他是作为一个单元执行的.代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而对于一个文件中的两个函数,也分别是两个不同的代码块: def fu

python代码块和小数据池

id和is 在介绍代码块之前,先介绍两个方法:id和is,来看一段代码 1 # name = "Rose" 2 # name1 = "Rose" 3 # print(id(name)) 4 # print(id(name1)) # 两个id相同 5 # print(name == name1) # True 6 # print(name is name1) # True 执行结果 2257847297000 2257847297000 True True Proce

Python小数据池,代码块解析

一.id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数查询一个数据的内存地址: name = '太白' print(id(name)) # 1585831283968 那么is又是什么?==又是什么? == 是比较两边的数值是否相等,而is是比较两边的内存地址是否相等.如果内存地址相等,那么这两边其实是指向同一个内存地址. 可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同. 二.代码块 根据官网提示我们可以获知: 根据提示我们从官

python小数据池,代码块深入剖析

小数据池 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建更多的对象 缓存:int,str,bool int:缓存范围-5~256 str:    1.长度小于等于1,直接缓存 2.长度大于1.字符串中如果只有数字,字母,下划线,就会缓存 3.乘于1.同上,乘于大于1的数.仅包含数字,字母,下划线,最终长度小于20会缓存 4.使用sys模块中的intern()缓存字符串 代码块的关系:如果在同一个代码块中,默认的整数和字符串还有布尔值都会进行缓存,如果涉及计算,尊崇上面的规则, 如果跨

Python 小数据池、代码块以及代码块缓存机制

按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言,惟有泪千行. 料得年年肠断处,明月夜,短松冈. 1. is 和 == 之间的区别 在讲解代码块及其缓存机制之前有必要搞清楚is和==之间的区别 开门见山直接说:==是比较两边变量的值是否相同,is是比较两边变量的内存地址是否相同,在python中内存地址如何获取,当然是使用id(item)函数获取了 举两个