issubclass() 函数检查对象参数 (第一个参数) 是否是 classinfo 类 (第二个参数) 的子类。
Python issubclass
Python issubclass() 是一个内置方法,用于检查一个类是否是另一个类的子类。如果指定的对象是指定对象的子类,issubclass() 函数返回布尔值True,否则返回False。在这个方法中,第一个参数和第二个参数被检查,即第一个参数是否是第二个参数的子类。
语法
issubclass(object, classinfo)
参数
这里有以下参数。
object: 是要检查的 类。
classinfo:是一个类,元组,或类的类型。
返回值
Python issubclass() 函数返回两种类型的结果,True 或 False。
如果对象是 classinfo 的一个子类,那么它返回True;否则,它返回False。
示例
请看下面的代码例子:
#Creating superclass
class Bank:
pass
#Creating subclass
class SBI(Bank):
pass
#Creating sub class of SBI
class HDFC (SBI):
pass
#Now we will check subclass with different arguments
#Checking if SBI is subclass of Bank or not
print(issubclass(SBI,Bank))
#Checking if Bank is subclass of SBi or not
print(issubclass(Bank, SBI))
#Checking multilevel subclass
print(issubclass(HDFC, Bank))
#Checking if a class is subclass of itself or not
print(issubclass(HDFC,HDFC))
#checking with an object argument
#Here object is referred to base class always
print(issubclass(Bank, object))
请看输出结果:
True
False
True
True
True
所以,如果作为第一个参数的类是作为第二个参数的另一个类的子类,那么它返回 True,否则,它返回 False。
Python issubclass()与一个类的元组的关系
请看下面的代码:
# app.py
class Top:
pass
class Middle(Top):
pass
class Low(Middle):
pass
print(issubclass(Low, (str, list, Top)))
在上面的例子中,你可以说 Top 是主要的父类,然后它的子类是 Middle,而 Middle 类的子类是 Low。
接下来在打印语句中,我们要检查Low类的类型是一个单一的类的子类还是一个类的元组的子类。请看输出。
➜ pyt python3 app.py
True
➜ pyt
issubclass()和isinstance()的区别
Python isinstance(object, classinfo)检查对象是否是classinfo的一个实例或子类。
而 issubclass(class, classinfo) 检查一个类是否是 classinfo 的一个子类。
Python isinstance() 函数用来检查对象是否是特定类或其任何子类的实例。它需要两个参数。
第一个是一个要测试的对象,第二个是一个单一的类或一个类的元组。它将检查第一个参数,e对象,是否是classinfo的实例。
如果第二个参数是类的元组,它将检查第一个对象是否是该元组中任何一个类的实例。
同样,issubclass()被用来检查该类的类型是否是不同类的子类。第二个参数是一个单一的类或一个类的元组。
本教程就到此为止。