• 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

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

  • 相关阅读:
    JAVA基础(十六)Super关键字
    JAVA基础(十五)this关键字
    JAVA基础(十四2.0)
    JAVA基础(十三)多态
    JAVA基础(十二)抽象类与接口
    git基本使用
    vuetify中treeview部分属性梳理
    vuetify初次使用心得
    react-常见面试题
    maven中profile的使用
  • 原文地址:https://www.cnblogs.com/jnsn/p/12712468.html
Copyright © 2020-2023  润新知