两者区别:
type()是一个内置函数,可以用来查询变量所指的对象类型
isinstance()是用来判断该变量是否为某种数据类型
关于基本数据类型
直接看代码 # type print(type(1), type(True), type([1,2,3])) # isinstance print(isinstance(1, int)) print(isinstance(True, bool)) print(isinstance([1,2,3], tuple))
输出结果
True True False
关于自定义类
对于自定义类来说:
type()认为子类和父类不是一种类型
isinstance()认为子类是一种父类类型
# 父类 class A: pass # 子类 class B(A): pass print(type(A()) == A) # returns True print(isinstance(A(), A)) # returns True print(type(B()) == A) # returns False print(isinstance(B(), A)) # returns True