申明一个内存空间,后续申明相同的值,不会再开辟一块新的内存空间,指向已有的内存空间
2.适用类型1. str2. int3. bool
3.实现原理1. 系统维护一个记录驻留对象的字典2. 当某个对象需要驻留,查看在字典中是否存在,若存在就指向已存在的内存空间;3. 新驻留对象不存在于该字典中,开辟内存空间,记录该对象
4.驻留时机1. 所有长度为 0 和长度为 1 的字符串都被驻留2. 字符串只在编译时进行驻留,而非运行时3. 字符串中只包含字母,数字或下划线时将会驻留4. 字符串长度不超过20位5.测试# strone = 'ffffffffffffffffffff'two = 'ffffffffffffffffffff'print(ID(one), ID(two)) # 42768184 42768184# intthree = 34567four = 34567print(ID(three), ID(four)) # 4697808 4697808# boolfive = Truesix = Trueprint(ID(five), ID(six)) # 497676512 497676512# 超过20位vv = "s" * 30bb = "s" * 30print(ID(vv), ID(bb)) # 35820848 35821088# 自己手动驻留import sysvv = sys.intern("s" * 30 + "666")bb = sys.intern("s" * 30 + "666")print(ID(vv), ID(bb)) # 38382824 38382824
5.优劣势优势:减小内存开销,省略申请内存空间的过程,提高执行效率劣势:创建驻留对象需要花费额外的开销
总结 以上是内存溢出为你收集整理的python 驻留机制全部内容,希望文章能够帮你解决python 驻留机制所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)