为什么 unicode 形式的字符串不等于它的 unicode 代码点值?

Why the string in unicode form is not equal to its unicode code point value?

我们可以得到字符串的unicode代码点值:

u'你'.encode('unicode-escape')
b'\u4f60'

为什么unicode形式的字符串不等于它的unicode代码点值?

u'你'  ==  u'\x4f\x60'
False
u'你'  ==  u'\u4f60'
False

是的,但是你的比较字符串比较不正确。第一个是一个字节的两个单独的字符,第二个是反斜杠转义的,意思是字面的6个字符\u4f60.

u'你' == u"\u4f60"
True

编码的字节字符串有两个反斜杠,因为编码对其进行了转义,这使得它即使变回字符串也不等同,除非您也使用 unicode-escape 对其进行解码。

旁注,u 是 python 中的默认值 3.