zoukankan      html  css  js  c++  java
  • 字符串驻留

    字符串驻留

    Python支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。

    这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别。

    >>> a = '1234'
    >>> b = '1234'
    >>> id(a) == id(b)
    True
    >>> a = '1234'*50
    >>> b = '1234'*50
    >>> id(a) == id(b)
    False
    
    
    >>> a = 'something'
    >>> b = 'some'+'thing'
    >>> id(a) == id(b)
    True
    

    下面例子结果是False:

    >>> a = '@hello'
    >>> b = '@he'+'llo'
    >>> id(a) == id(b)
    False
    

    这与Cpython 编译优化相关,行为称为字符串驻留,但驻留的字符串中只包含字母,数字或下划线。

  • 相关阅读:
    协程
    多进程
    多线程
    模块进阶
    内建函数
    内建属性
    属性property
    私有化
    深拷贝、浅拷贝
    ==、is
  • 原文地址:https://www.cnblogs.com/kai-/p/12142242.html
Copyright © 2011-2022 走看看