python字符串驻留机制的使用范围
小妮浅浅 人气:01、字符串的长度为0和1时。
2、符合标识符的字符串。
3、字符串只在编译时进行驻留,而非运行时。
4、[-5,256]之间的整数数字。
实例
>>> str1='jiumo' >>> str2='jiumo' >>> str1 is str2 True >>> id(str1) 1979078421896 >>> id(str2) 1979078421896
知识点扩充:
驻留时机
所有长度为 0 和长度为 1 的字符串都被驻留
字符串只在编译时进行驻留,而非运行时
a = 'hi' # a变量被驻留 b = ''.join(['h', 'i']) # 变量不会被驻留 print(a is b) # False
原理
系统维护interned字典,记录已被驻留的字符串对象
当字符串对象a需要驻留时,先在interned检测是否存在,若存在则指向存在的字符串对象,a的引用计数减1
若不存在,则记录a到interned中
加载全部内容