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

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

  • 相关阅读:
    HTTP Header 详解
    nginx负载均衡配置
    Win10安装Oracle11g
    MySQL如何让别人远程连接自己的数据库
    Maven的安装以及配置
    linux上安装jdk,tomcat,mysql
    Centos7上安装docker
    ActiviMQ快速入门
    2018年上海后半年JAVA软件工程师面试真题
    Docker安装MySQL、Redis、Tomcat
  • 原文地址:https://www.cnblogs.com/jnsn/p/12712468.html
Copyright © 2011-2022 走看看