zoukankan      html  css  js  c++  java
  • python 小数据池、代码块

    # 同一代码块的缓存机制
    # Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其重用
    # id 相同,那么值一定是相同的;值相同,id不一定相同
    # 所有的 int / bool /几乎所有的字符串
    # (如字符串'太白@5847395QQ0743895*&^%$#((&_+(())' *2 不符合规则,带有*号 与很多特殊字符)
    # == 判断的是值
    l1 = [1, 2, 3]
    l2 = [1, 2, 3]
    print(l1 == l2)# True
    
    # is 判断的是地址
    print(id(l1))
    print(id(l2))
    print(l1 is l2) # False
    
    
    s1 = 'Alex'
    s2 = 'Alex'
    print(id(s1), id(s2)) # True
    
    i1 = 100
    i2 = 100
    print(id(i1))
    print(id(i2))
    
    
    
    # 不同代码块的缓存机制:小数据池
    # 适用的对象: int bool str
    # 具体细则: -5 --256 ,bool , 满足规则的字符串(比同一个代码块的范围要小)
    # 提升性能,节省空间
    # 交互式命令每一行是不同的代码块,同一个文件是一个代码块,可以用交互式命令验证不同代码块的缓存
    >>> i = 800
    >>> i1 = 800
    >>> print(i is i1)
    False
    
    >>> k = 123
    >>> k1= 123
    >>> print(k is k1)
    True
    
    
    总结:

    如果在同一代码块下,则采用同一代码块下的换缓存机制。

    如果是不同代码块,则采用小数据池的驻留机制。

    同一个代码块的缓存机制比小数据池的范围大

    小数据池 int 的范围是-5----256

    优点:提升性能,节省空间

  • 相关阅读:
    链表
    Wonder团队承接各种Web3D业务
    真我的信息
    一个人独自做长期项目,如何提高工作效率?
    【Java】类的结构
    【长知识】找书攻略
    【长知识】语义化版本控制
    【Java】Debug调试常用技巧
    【Web】Servlet三大作用域、JSP四大作用域
    【Web】Servlet基本概念
  • 原文地址:https://www.cnblogs.com/jnsn/p/12712468.html
Copyright © 2011-2022 走看看