对于以下代码,str
是 unicode 类型的变量,但是
str is unicode # returns false
isinstance(str, unicode) # returns true
为什么
is
返回假吗?
最佳答案
is
运算符用于检查两个对象是否相同,而 isinstance
用于检查第二个参数是否出现在第一个参数的继承链中的任何位置。
所以,当你做这样的事情时
print(u"s" is unicode)
你实际上是在检查
u"s"
是 unicode
,但是当你这样做的时候print(isinstance(u"s", unicode))
您正在检查是否
u"s"
类型为 unicode
而后者实际上是 True
.
关于python - python中 "is"和 "isinstance"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193525/