I run same snippet of python code in python console and pdb, but I get different results as below:
pdb:
>>> import pdb
>>> pdb.set_trace()
(Pdb) print u'你好' == u'\u4f60\u597d'
False
(Pdb) print u'你好' is u'\u4f60\u597d'
False
(Pdb) print id(u'你好'), id(u'\u4f60\u597d')
4431713024 4431713120
(Pdb) id(u'你好')
4431713024
(Pdb) id(u'\u4f60\u597d')
4431713024
python console:
>>> print u'你好' == u'\u4f60\u597d'
True
>>> print u'你好' is u'\u4f60\u597d'
True
>>> print id(u'你好'), id(u'\u4f60\u597d')
4376711984 4376711984
>>> id(u'你好')
4376711984
>>> id(u'\u4f60\u597d')
4376711984
My python version is 2.7.13
So my questions:
1.why operators(like '==' and 'is') perform differently in two consoles.
2.In pdb, id(u'\u4f60\u597d') equals 4431713120 in
print id(u'你好'), id(u'\u4f60\u597d')
but 4431713024 in
id(u'\u4f60\u597d')
3.Why this situation does not occur in python3