python intern(字符串驻留机制)

。_饼干妹妹 提交于 2019-12-01 06:56:43

python 中为了提高字符串的使用用效率和节约内存,对于由 字母、数字、下划线组成的标识符采用了 intern 机制,即对于短字符串,将其赋值给多个对象时,内存中只有一个副本,多个对象共享这个副本。长字符串不适用。

注:驻留机制发生在编译阶段,不是运行阶段。

例:

>>> a = '1'
>>> b = '1'
>>> a is b
True
>>> a = '-abc'
>>> b = '-abc'
>>> a is b
False
>>> a = 123
>>> b = '123'
>>> c = str(a)
>>> c is a
False

对没有默认使用 intern 机制的字符串强制使用驻留机制:

>>> import sys
>>> a = 123
>>> b = '123'
>>> c = sys.intern(str(a))
>>> c is a
True

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!