差异“是”,并在蟒蛇
问题描述:
对于下面的代码“isinstance”,str
是unicode类型的变量,但差异“是”,并在蟒蛇
str is unicode # returns false
isinstance(str, unicode) # returns true
为什么is
是返回false?
答
is
运算符用于检查两个对象是否是同一个,而isinstance
用于检查第二个参数是否出现在第一个参数的继承链中的任何位置。
所以,当你做这样的事情
print(u"s" is unicode)
你实际上是检查是否u"s"
是unicode
,但是当你做
print(isinstance(u"s", unicode))
要检查是否u"s"
是unicode
型和后者实际上是True
。
这个答案:http://stackoverflow.com/questions/13650293/understanding-python-is-operator应该给你一个更好的视角。 “is”正在检查对象是否相等。 – karthikr 2014-10-04 14:03:18
@ karthikr'/平等/身份/' – 2014-10-04 14:06:50