字符串驻留
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。 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是否相同