isinstance() 函数是用来检测一个对象是否是指定类或类的一个实例,或者是否是一个包含在指定类元组中的任意一个类的实例。这个函数非常有用,特别是在处理面向对象编程时,当你需要验证变量的类型或确保传递给函数的参数符合特定类型要求时。
函数原型:
isinstance(object, classinfo)
- object: 待检查的对象
- classinfo: 可以是一个类或者包含多个类的元组,用于与对象的类型进行比较
- 返回值: 如果对象的类型与参数二中的类匹配或者是其子类,则返回 True 否则,返回 False
应用1:检查基本类型
Bool = False
print(isinstance(Bool, bool)) # True
text = "Hello World"
print(isinstance(text, str)) # True
应用2:使用类和继承
假设我们有一个基类 people和一个从 people派生的子类 Man:
class people:
pass
class Man(people):
pass
xiaoming = Man()
print(isinstance(xiaoming, people)) # True
print(isinstance(xiaoming, Man)) # True
print(isinstance(xiaoming, object)) # True
此例子中,xiaoming 既是 Man的实例,也是 Man的基类 people的实例。
应用3:检查是否属于多个类型之一
可以使用元组来检查对象是否是多个类型中的一个:
my_list = [1, 2, 3]
print(isinstance(my_list, (list, tuple))) # True
my_tuple = (1, 2, 3)
print(isinstance(my_tuple, (list, tuple))) # True
在这个例子中,isinstance 检查 my_list 是否是 list 或 tuple 类型的实例。