字符串驻留
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。
python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启动字符串驻留机制。
>>> a = "abd_33"
>>> b = "abd_33"
>>> c = "dd#"
>>> d = "dd#"
>>> a is b
True
>>> c is d
False
>>>
原因:
a和b符合标识符规则的字符串(仅包含下划线(_)、字母和数字),所以会启动字符串驻留机制,所以为True
c和d不符合识符规则的字符串(仅包含下划线(_)、字母和数字),所以不会启动字符串驻留机制,所以为False
”is“比较两个对象id是否相同
”==“比较的是两个对象的value是否相同