这两个函数有意义用法差不多,都是查看对象的,但是两者之间也有一定区别,具体内容请看下文~

type()是一个内置函数,可以用来查询变量所指的对象类型
isinstance()是用来判断该变量是否为某种数据类型
关于基本数据类型
1 2 3 4 5 6 7 8 | 直接看代码
# 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))
|
输出结果
1 2 3 4 | <class 'int' > <class 'bool' > <class 'list' >
True
True
False
|
关于自定义类
对于自定义类来说:
type()认为子类和父类不是一种类型
isinstance()认为子类是一种父类类型
1 2 3 4 5 6 7 8 9 10 11 12 | # 父类
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
|
大家以后在使用两者函数时,可以区别选取最适合的啦~如需了解更多python实用知识,点击进入Python学习网教学中心。
(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)