1.12 神奇的 intern 机制 ======================= .. image:: http://image.iswbm.com/20200804124133.png 字符串类型作为Python中最常用的数据类型之一,Python解释器为了提高字符串使用的效率和使用性能,做了很多优化。 例如:Python解释器中使用了 intern(字符串驻留)的技术来提高字符串效率,什么是intern机制?就是同样的字符串对象仅仅会保存一份,放在一个字符串储蓄池中,是共用的,当然,肯定不能改变,这也决定了字符串必须是不可变对象。 .. code:: python >>> s1="hello" >>> s2="hello" >>> s1 is s2 True # 如果有空格,默认不启用intern机制 >>> s1="hell o" >>> s2="hell o" >>> s1 is s2 False # 如果一个字符串长度超过20个字符,不启动intern机制 >>> s1 = "a" * 20 >>> s2 = "a" * 20 >>> s1 is s2 True >>> s1 = "a" * 21 >>> s2 = "a" * 21 >>> s1 is s2 False >>> s1 = "ab" * 10 >>> s2 = "ab" * 10 >>> s1 is s2 True >>> s1 = "ab" * 11 >>> s2 = "ab" * 11 >>> s1 is s2 False