对于以下代码,str
是unicode类型的变量,但
str is unicode # returns false
isinstance(str, unicode) # returns true
为什么is
返回false?
答案 0 :(得分:3)
is
运算符用于检查两个对象是否相同,而isinstance
用于检查第二个参数是否出现在第一个参数的继承链中的任何位置。
所以,当你做这样的事情时
print(u"s" is unicode)
您确实在检查u"s"
是否为unicode
,但是当您执行
print(isinstance(u"s", unicode))
您正在检查u"s"
是unicode
类型,后者实际上是True
。