Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制驻留机制,创建同一份对象存贮在“字符串常量池”里。不同的变量引用同一个对象地址。
在IDLE里支持上述规则,pycharm里对于不符合标识符规则的字符串也进行驻留。
字符串只在编译时进行驻留,而非运行时。
同一运算符(is)判断是不是同一个对象;
比较运算符(==)判断对象内容是不是一致。
>>>a = "abc"
>>>b = "abc"
#测试字符串驻留机制
>>>a == b
True
>>>a is b
True
>>> c = "我爱你"
>>> d = "我爱你"
>>>c == d
True
>>>c is d
False
#字符串只在编译时进行驻留,而非运行时
>>> e = "aa"+"bb"
>>> f = "aabb"
>>> e is f
True
>>> h1 ="aa"
>>> h2 = "bb"
>>> h = h1+h2
>>> h is f
False