zoukankan      html  css  js  c++  java
  • 小数据池 id

    1. 小数据池, id()
    小数据池针对的是: int, str, bool
    在py文件中几乎所有的字符串都会缓存.
    id() 查看变量的内存地址

    # id()函数可以帮我们查看一个变量的内存地址
    # a = 10
    # b = 30
    # print(id(a))  # 1515545088
    # print(id(b))  # 1515545728
    
    
    # lst = ['周杰伦', "麻花藤"]
    # print(id(lst))  # 166167624
    # print(lst)
    # lst = []  # 创建了一个新列表
    # lst.append("胡辣汤")
    # print(id(lst))  # 166167624
    # print(lst)
    
    # lst1 = [1,2,3] # 两个对象 内存地址是不一样的
    # lst2 = [1,2,3]
    # print(id(lst1)) # 166167624
    # print(id(lst2)) # 166122376
    
    # s1 = "abc" # 内存中是没有"abc", 创建一个新的  0.0001
    # s2 = "abc" # 内存中是已经有了"abc", 直接把abc拿来用   0.0000001
    # print(id(s1), id(s2)) # 31096032 31096032
    
    # 视频频率最高的数据类型: 字符串,为了能够快速的创建字符串.
    # 节省内存. 把相同的规律的字符串进行缓存,当下次创建的时候就不在创建了
    # 把字符串的缓存-> 小数据池 -> String iterning -> 常量池 -> 字符串缓存
    
    # 在创建字符串之前. 先去小数据池对比. 是否已经存在了该字符串.如果存在了.
    # 就不创建新的了. 直接拿原来存在的数据, 省略掉反复重复创建字符串的过程. 节约内存
    
    
    # 什么数据会被缓存
    # 数字, 字符串, 布尔值 =>  都是不可变的数据类型
    # 1. 数字
    # a = 1000
    # b = 1000
    # print(id(a), id(b))  # 165830000 165830000
    
    # 2. 字符串. 如果单纯的写字符串. 几乎都会被缓存
    # s1 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
    # s2 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
    #
    # print(id(s1), id(s2)) # 31222064 31222064
    
    # 如果在py文件中写的字符串. 几乎都是缓存的
    # 在黑窗口里的写的几乎都不会缓存
    # 不同的解释器. 缓存的机制也不一样
    
    # 优点: 可以帮我们快速的创建对象.节省内存.
    # 缺点: 缓存如果过大. 响应速度会比较慢
    # 不要纠结.
    
    # == 和 is 区别:
    
    # == 比较的是数据, 外贸
    # is 比较的是内存地址, 比较身份证号
    
    # lst1 = [1,2,3]
    # lst2 = [1,2,3]
    # # 列表没有小数据池
    # print(id(lst1), id(lst2)) #  166167560 166126408
    # print(lst1 == lst2) # True
    # print(lst1 is lst2) # False
    #
    # s1 = "我叫周润发"
    # s2 = "我叫周润发"
    # print(s1 == s2)
    # print(s1 is s2) # 小数据池
    
    # tu1 = ("周一", "周二")
    # tu2 = ("周一", "周二")
    # print(tu1 is tu2) # 地址不相等 False
    # print(tu1 == tu2) # 内容相等 True
    
    # == 比较的是内容
    # is 比较内存地址
    

      

  • 相关阅读:
    JS伪3D 图形透视效果
    源码安装apache及配置转发
    SpringSecutiry权限管理手册
    解决SMARTFORMS 中table 控件单行跨页的问题
    Cluster Table
    uva-133 The Dole Queue
    第三届蓝桥杯C++本科B组决赛解题报告(更新中)
    uva-673 Parentheses Balance
    VS2010不能编译SQLServer2005的Microsoft.SQLServer.ManagedDTS.dll的解决方法
    IOS设计模式学习(21)享元
  • 原文地址:https://www.cnblogs.com/YangWenYu-6/p/10060809.html
Copyright © 2011-2022 走看看