isinstance
是 Python 标准库中的一个内置函数,用于检查一个对象是否是一个类的实例,或者是否继承自某个类。这个函数经常用在类型检查和多态行为的实现中。
函数的原型如下:
isinstance(object, classinfo)
object
:要检查的对象。classinfo
:可以是一个类名、类的类型对象、一个包含类的元组或者None
(这种情况下,isinstance
将检查object
是否是一个对象)。
如果 object
是 classinfo
指定的类或其子类的实例,isinstance
函数将返回 True
,否则返回 False
。
下面是一些使用 isinstance
函数的例子:
# 假设我们有一个父类和一个子类
class Animal:
pass
class Dog(Animal):
pass
# 创建一个 Dog 类的实例
my_dog = Dog()
# 使用 isinstance 检查类型
print(isinstance(my_dog, Dog)) # 输出: True
print(isinstance(my_dog, Animal)) # 输出: True
print(isinstance(my_dog, object)) # 输出: True,因为所有的类都继承自 object
在这些例子中,my_dog
是 Dog
类的一个实例,而 Dog
继承自 Animal
类。因此,my_dog
不仅是 Dog
类的实例,也是 Animal
类的实例,所以 isinstance
对于这些类都返回 True
。同时,由于所有的类都是 object
类的子类,所以 isinstance
也返回 True
。
isinstance
函数在处理继承和多态时非常有用,它可以帮助你确定一个对象是否可以被安全地当作另一个类型的实例来使用。此外,它也常用于类型检查,以确保代码的健壮性和安全性。