dict'是False,但返回类型却是<type 'dict'>?
>>> flob = {u'': [u''], u'DL': [u'DL'], u'Gender': [u'Both Sexes'], u'SQ': [u'SQ'], u'BP': [u'BP'], u'Location': [u'World Wide']}
>>> flob is dict
False
>>> flob == dict
False
>>> type(flob)
<type 'dict'>
我问它是不是字典类型,它说不是。我再问它是什么类型,它却说是字典。为什么会这样呢?
3 个回答
3
这个橙子和我们说的橙子这个概念是一样的吗?
这个橙子的价值和我们说的橙子这个概念的价值是一样的吗?
这个橙子到底是什么样的东西?
3
is
用于比较两个对象是否是同一个,也就是比较它们的身份。下面有个提示:id
可以返回一个对象在内存中的位置,id(a) == id(b)
就相当于在说 a is b
。如果你想检查一个对象的类型(这种情况应该少用),可以使用 isinstance
。
>>> flob = {u'': [u''], u'DL': [u'DL'], u'Gender': [u'Both Sexes'], u'SQ': [u'SQ'], u'BP': [u'BP'], u'Location': [u'World Wide']}
>>> id(flob)
17665920
>>> id(dict)
8678496
>>> id(flob) == id(dict)
False
>>> type(flob) == dict
True
>>> isinstance(flob, dict)
True
8
因为你在比较的是对象本身,也就是dict
的实例,而不是dict
这个类型...这两者是不同的东西。is
用来判断两个变量名是否指向同一个对象。
type({}) is dict # returns true.
a = {}
b = a
a is b # returns true