isinstance()函数
isinstance()是 Python 内置函数之一,用于检查一个对象是否属于指定的类型。它的语法为:
isinstance(object, classinfo)
object – 实例对象
classinfo – 可以是直接或间接继承的类、基本类型或者由它们组成的元组。
返回值:如果object 的类型与classinfo相同则返回 True,否则返回 False。
isinstance() 函数的作用和原理如下:
检查对象是否属于指定类型:isinstance() 用于判断一个对象是否是给定类型的实例。如果对象是指定类型的实例,返回 True;
处理继承关系:isinstance() 在检查类型时会考虑继承关系。如果检查的对象是指定类型的子类的实例,也会返回 True。【 type() 不会认为子类是一种父类类型,不考虑继承关系】
处理类型元组:classinfo 参数可以是一个类型元组,即包含多个类型的元组。如果 object 是类型元组中任意一个类型的实例,函数将返回 True
class A:
pass
class B(A):
pass
a = A()
b = B()
c = 3
print(isinstance(a, A)) # True,a是A类型的实例
print(isinstance(b, A)) # True,b是A类型子类B的实例(继承关系)
print(isinstance(b, (int, str))) # False,a不是int或str类型的实例
print(isinstance(c, (int, str))) # True,c是int或str类型的实例
print(isinstance(B(), A) ) # returns True 如果要判断两个类型是否相同推荐使用 isinstance()
print(isinstance(B, A) ) # returns False
print(type(a) == A ) # returns True
print(type(b) == A ) # returns False
总之,isinstance() 函数在 Python 中用于检查对象是否属于指定类型,它是处理对象类型的一种常用工具。