博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小数据池 id
阅读量:6293 次
发布时间:2019-06-22

本文共 1728 字,大约阅读时间需要 5 分钟。

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 比较内存地址

  

转载于:https://www.cnblogs.com/YangWenYu-6/p/10060809.html

你可能感兴趣的文章
Weex控制Android返回键解决方案
查看>>
Laravel5.4重新登陆跳转到登陆前页面的原理和实现
查看>>
Chrome Full black Screen [Solved]
查看>>
Android动态权限管理模型(4.3-6.0)
查看>>
UI仿写 - 收藏集 - 掘金
查看>>
svg做自定义折线图表
查看>>
Koa源码分析(二) -- co的实现
查看>>
nohup和&的区别与关系
查看>>
UE4链接第三方库(lib和dll)
查看>>
phpstrom中让volt高亮显示
查看>>
macOS下nginx配合obs做推流直播.md
查看>>
数据结构——树
查看>>
浅析React之事件系统(二)
查看>>
Elixir 1.2带来多项功能增强和性能提升
查看>>
IPv6新形势下的安全解决方案
查看>>
红帽论坛北京站召开 设立亚太开放创新实验室
查看>>
函数式编程语言时代已经来临
查看>>
微软云数据库 Azure SQL DB Hyperscale如何实现超大规模存储和高可用?
查看>>
十年中文技术社区风雨之路 今晚4位老炮畅聊过去未来
查看>>
微软发起Java on Azure调查,呼吁Java社区积极参与
查看>>