"之间的区别是"和" isinstance"在python中

时间:2014-10-04 13:58:33

标签: python

对于以下代码,str是unicode类型的变量,但

str is unicode            # returns false
isinstance(str, unicode)  # returns true

为什么is返回false?

1 个答案:

答案 0 :(得分:3)

is运算符用于检查两个对象是否相同,而isinstance用于检查第二个参数是否出现在第一个参数的继承链中的任何位置。

所以,当你做这样的事情时

print(u"s" is unicode)

您确实在检查u"s"是否为unicode,但是当您执行

print(isinstance(u"s", unicode))

您正在检查u"s"unicode类型,后者实际上是True