python中有两个验证类型的函数,一个是isinstance(),一个是type()。这两个函数各有各的特点和优势
相同点
都可以用来检测某一变量是否属于某一类型,某一实例是否属于某一类。用法如下:
1.检测变量是否属于某一数据类型
>>> a = 10
>>> type(a) == int
True
>>> isinstance(a,int)
True
2.检测实例化对象是否属于某一个类
>>> class Student:
... a = 10
...
>>> std = Student()
>>> isinstance(std,Student)
True
>>> type(std) == Student
True
不同点
这两个函数的不同点主要区别在检测某一实例化对象是否属于某一类的时候,我们都知道,一个类有子类和父类之说。而一个类又可以有无数个实例化对象。isinstance()能够判断出子类的实例化对象属于父类,但是type()则不会得出这个结果,它不会认为子类的实例化对象和它父类相同。
#定义两个类,一个父类,一个子类继承父类
#父类
class School:
a = 10
#子类
class Student(School):
b = 20
#父类实例化对象
sch = School()
#子类实例化对象
stu = Student()
#判断子类实例化对象是否与父类相同
print(isinstance(stu,School)) #输出True
print(type(stu) == School) #输出False
综上所述:推荐使用isinstance来检查类型。
关注我公众号【程序员向东】,此公众号专注分享Python、爬虫学习资料和干货,关注后回复【PYTHON】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~