代码块

什么是代码块

  在python中代码块指的是python

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

  而在用户交互里面,就是cmd中进入python解释器例,每一行代码就是一个代码块.网络

is

  is 是比较的两边的内存地址是否相等函数

==

  比较俩边的数值是否相等性能

id

  指内存地址,利用id()内置函数去查询一个数据的内存地址优化

小数据池(驻留机制,小整数缓存机制)

  是python对内存作的一个优化,对一些经常使用的数字(整数-5~256),必定规律的字符串提早建立一个小数据池(容器),编码

  优势:节省内存,在内存级别提升性能与效率,经常使用的字符串能够直接从小数据池中提用spa

  缺点:在“池”中建立或插入字符串,整数时,会“相对”花费更多的时间code

  int:对象

    在小数据池中保存的有(-5~256)之间的整数,即之间从小数据池中调用

  str:

  1.对于字符串是ASCII码中的,默认采用小数据池(驻留机制)

    注意:字符串的内容不包括中文,字符串中含有特殊字符的话长度(字符串的长度)只能是1才是True,

  2.对于乘法,若是a = "afhjdhsaflh***"   b = a *1     print(a is b)     输出都是True,即都默认采用驻留机制

     若是是乘于2以上的  即a = "aslfj"*4  b = "aslfj"*4   总长度必须在20之内才是默认采用驻留机制

  指定驻留

from sys import intern
a = intern('hello!@'*20)
b = intern('hello!@'*20)
print(a is b)
#指定驻留是你能够指定任意的字符串加入到小数据池中,让其只在内存中建立一个对象,多个变量都是指向这一个字符串。

  bool

    布尔值始终保存在小数据池内

编码升级

  不一样编码直接不能够直接识别,都是进过转化才能够识别的

  网络传输和存储:因为Unicode太占用内存,因此必须以非Unicode的编码进行网络传输或者存储

  在大环境python3x中

    str:字符串的编码是Unicode

    其他都是utf-8

  因此引入了bytes的数据类型概念

  ytes类型和字符串类型是相似关系,字符串类型的内置函数在bytes类型均可以使用。

而区别是bytes类型没办法以b'中文字符串'的类型存储中文数据,只有字符串能够,而且bytes类型的内存编码方式不是Unicode,因此当字符串须要进行网络传输和存储时必须进行编码,就是把Unicode->其余编码方式进行操做。 编码及解码: str->bytes encode 编码 bytes->str decode 解码

相关文章
相关标签/搜索