isinstance()和type()两者是Python的内建函数,都可以获取对象类型。
比如:
>>> isinstance(12, int)
True
>>> type(12)
>>> isinstance(3.5, float)
True
>>> type(3.5)
>>> isinstance("123babababb",str)
True
>>> type("123babababb")
instance还可以判断某个对象是否是属于一系列类型中的某一种,比如:
>>> isinstance('adf',(str,float,int))
True
如果对象不属于任何一个数据类型,则返回False。
>>> isinstance('adf',(float,int))
False
这两个函数的不同主要体现在,是否认为子类的实例化对象属于父类类型。
isinstance()会认为子类的实例化对象属于父类类型,但是type()则不会认为子类的实例化对象属于父类类型。看个例子:
class A:
pass
class B(A):
pass
a=A()
isinstance(a, A) # returns True
type(A()) is A # returns True
isinstance(B(), A) # returns True
type(B()) is A # returns False