Python字符串驻留机制疑问:字符种类影响内存对象指向?
关于Python字符串驻留机制的特殊现象疑问
除了已有的相关解答外,我发现了Python字符串的一个特殊现象:
现象1:长重复字符字符串的驻留
当字符串仅由有限几种重复字符组成(比如仅包含a、s、d),即使长度远超4个字符,多次拼接生成的相同字符串变量仍指向同一内存对象:
q = "asdasdasdsadsadsadsadsadsadsadsadsad" a = "asdasdasdsadsadsadsadsadsadsadsadsad" >>> a is q True
现象2:字符种类增加或加入特殊字符后的变化
最初我以为当字符串包含的不同字符达到4种时(比如在上述字符串末尾添加"e"),变量会指向不同对象:
q = "asdasdasdsadsadsadsadsadsadsadsadsade" a = "asdasdasdsadsadsadsadsadsadsadsadsade" >>> a is q False
但后续测试发现上述情况现在返回True,不过当字符串中加入特殊字符后,a is q会返回False。
恳请有人详细解释这一现象。
内容的提问来源于stack exchange,提问作者Spyros Kappalamda
相关产品推荐
相关产品推荐

