• Python细节(二)小数据池


    3.8小数据池

    python是由代码块构成的

    代码块,一个模块.一个函数,一个类,一个文件,eval(),exec()执行的时候也是一个代码块

    1.内存地址 id()

    通过id() 我们可以查看到一个变量表示的值在内存中的地址

    a = 'alex'
    print(id(a))		#4541631158
    
    1. == 和is

      ==比较的是值(内容) True

      is比较的是内存地址(是不是同一个对象) False

    lst1 = [1,2,3]
    lst2 = [1,2,3]
    pritn(lst1 == lst2)			#True	长得一样
    print(lst1 is lst2)			#False	不是同一个对象
    
    

    3.小数据池 数字(-5-256)之间的整数会被缓存

    lst1 = 'alex'
    lst2 = 'alex'
    pritn(lst1 == lst2)			
    print(lst1 is lst2)			#在python中默认会把整数,布尔值,字符串进行缓存
    

    缓存规则

    1. 如果字符串的⻓度是0或者1, 都会默认进⾏缓存
    2. 字符串⻓度⼤于1, 但是字符串中只包含字⺟, 数字, 下划线时才会缓存
    3. ⽤乘法的到的字符串. ①. 乘数为1, 仅包含数字, 字⺟, 下划线时会被缓存. 如果
      包含其他字符, ⽽⻓度<=1 也会被驻存, ②. 乘数⼤于1 . 仅包含数字, 字⺟, 下线这个时候会被缓存. 但字符串⻓度不能⼤于20
    4. 指定驻留. 我们可以通过sys模块中的intern()函数来指定要驻留的内容.
    5. 特殊字符(中文除外)定义一个的时候进行驻留

    手动缓存,需要调用工具

    from sys import intern
    

    代码块的规则

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

    需要记住:小数池支持数字字符布尔值

    ​ 数字 -5 - 256

    ​ 字符串乘法时长度不能超过20

  • 相关阅读:
    面试题练习
    小作业7
    小作业6,7
    小作业
    坦克大战
    面试题
    20181213作业
    20181212作业
    20181211作业
    第三周周末作业
  • 原文地址:https://www.cnblogs.com/llwwhh/p/11317951.html
Copyright © 2020-2023  润新知