为什么id()对于相同的Unicode字符串文字给出不同的结果?

时间:2014-12-20 03:10:00

标签: python python-2.7 unicode unicode-literals

为什么Unicode字符串文字显示不同的ID?我希望与String文字的行为相同。

>>> p = 'abcd'
>>> q = 'abcd'
>>> id(p) == id(q)
True
>>> p = u'abcd'
>>> q = u'abcd'
>>> id(p) == id(q)
False

请提供一些指示。

1 个答案:

答案 0 :(得分:0)

出于同样的原因,具有相同内容的两个dict将具有不同的id:它们是不同的对象。我怀疑非Unicode字符串文字是同一个对象是一种优化。