Python 提供了如下两个函数来检查类型:
1、issubclass(cls, class_or_tuple):检查 cls 是否为后一个类或元组包含的多个类中任意类的子类。
2、isinstance(obj, class_or_tuple):检查 obj 是否为后一个类或元组包含的多个类中任意类的对象。
通过使用上面两个函数,程序可以方便地先执行检查,然后才调用方法,这样可以保证程序不会出现意外情况。
两个函数的区别只是 issubclass() 的第一个参数是类名,而 isinstance() 的第一个参数是变量,这也与两个函数的意义对应:issubclass 用于判断是否为子类,而 isinstance() 用于判断是否为该类或子类的实例。
此外,Python 为所有类都提供了一个 __bases__
属性,通过该属性可以查看该类的所有直接父类,该属性返回所有直接父类组成的元组。
Python 还为所有类都提供了一个 __subclasses__()
方法,通过该方法可以查看该类的所有直接子类,该方法返回该类的所有子类组成的列表。