Python issubclass和isinstance
issubclass
和isinstance
是Python内建函数,用于检查类之间的继承关系和对象的类型。
issubclass(subclass, baseclass)
函数用于检查一个类是否是另一个类的子类。它接受两个参数,subclass
是待检查的类,baseclass
是作为基类的类。如果subclass
是baseclass
的子类,issubclass
返回True
;否则返回False
。
class MyBaseClass:
pass
class MySubClass(MyBaseClass):
pass
print(issubclass(MySubClass, MyBaseClass)) # True
print(issubclass(MyBaseClass, MySubClass)) # False
isinstance(obj, class)
函数用于检查一个对象的类型。它接受两个参数,obj
是待检查的对象,class
是作为类型的类。如果obj
是class
或其子类的实例,isinstance
返回True
;否则返回False
。
obj = MySubClass()
print(isinstance(obj, MyBaseClass)) # True
print(isinstance(obj, MySubClass)) # True
obj = MyBaseClass()
print(isinstance(obj, MyBaseClass)) # True
print(isinstance(obj, MySubClass)) # False
通过使用issubclass
和isinstance
函数,可以方便地进行类和对象的类型检查,从而进行相应的处理。