python字符串驻留是什么
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"python字符串驻留是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看下面这
千家信息网最后更新 2025年02月23日python字符串驻留是什么
本篇内容介绍了"python字符串驻留是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
先看下面这段代码
>>> a = 'apple'
>>> b = 'apple'
>>> a is b
True
返回结果看起来没毛病
再来看这段:
>>> a = 'apple!'
>>> b = 'apple!'
>>> a is b
False
这个结果是不是有点诡异
前后两个字符串仅仅是一字之差,结果完全不同。
不信你可以自己测试一下
为了理解这段代码的区别,里面涉及到一个概念,叫做"字符串驻留",英文叫string intern。
什么是字符串驻留
python中万物皆对象,某些情况下,解释器遇到两个看起来长的一毛一样的对象时会做一些优化
例如上面例子中的第一段代码,a 和 b 的值都是 apple
,当解释器准备创建第二个字符串"apple"时,解释器会去驻留内存中查找是否已经存在"apple"对象,如果有就不在创建新的对象了,两人共享一个老婆,哦不对,是共享一个对象。
这就是字符串驻留的概念。
所以 a 和 b 这两个变量共享了同一个对象,因此 is
运算后返回结果为 True
。
对于简单的字符串,系统中可能大量重复存在,这样的好处就是节省内存。驻留内存这个策略在java中也存在。
但并不是所有的字符串有会放进驻留内存中,如果都驻留的话,内存会爆炸。只有符合如下规则才有可能被驻留
长度为 0 或者 1 的字符串被驻留.
字符串中只包含字母,数字或下划线时将会驻留。
字符串必须是编译时的常量字符串
例如下面的c用join方法生成的字符串就不会驻留
>>> a = "apple"
>>> c = "".join(['a','p','p','l','e'])
>>> a is c
False
"python字符串驻留是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
字符
字符串
对象
内存
结果
两个
代码
解释器
解释
内容
就是
情况
更多
概念
知识
不同
不对
诡异
一字之差
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
eyou服务器
服务器安全加固实验报告
服务器压力测试网站
审批流程 数据库设计
数据库安全防护网关
重庆特色少儿编程软件开发
交换机网络安全问题
网络安全学年论文选题
网络安全隐私调查背景
星际争霸连接战网服务器
软件开发项目成果总结
城固网络安全法
加强网络安全人才交流
数据库进程用户
公安网络安全的管理
橙色软件开发
医学专利数据库
数据库数据传输的途径
合肥企业软件开发平台
四川高清视频会议服务器设备
保立网络技术有限公司待遇
手机网络安全故事
蓝海软件开发拍牌
服务器机房装修动画演示
北京软件开发商城浏览
江西智慧社区软件开发系统
XRD 的PDF卡片数据库
怎么注册人民日报图文数据库
庆网网络技术
合肥企业软件开发平台