python字符串驻留是什么
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容介绍了"python字符串驻留是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看下面这
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
服务器 配置管理地址
国外报刊数据库
java软件开发怎么做
数据库中数据表的关系
网络安全的预防跟应对
徐汇区数据软件开发创新服务
宁波江北附近戴尔服务器
衡阳教育系统软件开发
商品属性数据库设计
fda医疗器械数据库
数据库原理第四版第2章
税控盘登陆访问数据库错误
网络安全法微网文
朝阳区网络技术咨询品质保障
u8维护数据库
学习网络安全教育简报
数据库中选择语句
商务部网络安全学院
中奥互联网科技有限公司
linux服务器版本查看
ocs是什么服务器
ysql 修改数据库名
网络安全青年争先手操报
网络安全基础知识入侵
网络安全月薪
北京商业软件开发预算
vB数控软件开发
sci数据库怎么导出引用格式
手机服务器被破坏
数据库中选择语句