issubclass()、isinstance()
issubclass()
用于判断类对象是否是另一个(或一组)类对象的子类issubclass()
接收两个参数,第一个参数时类对象,第二个参数时类对象或由类对象组成的元组 。
当第二个实参是类对象的时候,如果第一个实参是第二个实参的子类,则返回True。
当第二个实参是类对象组成的元组时,如果第一个参是第二个实参中任意一个类对象的子类,则返回True。
#!/usr/bin/python3
class A(object):
pass
class B(object):
pass
class C(object):
pass
class D(A):
pass
class E(D):
pass
print(issubclass(D, A)) # True
print(issubclass(D, D)) # True 自己是自己的子类
print(issubclass(D, E)) # False
print(issubclass(E, A)) # True
print(issubclass(D, (A, B))) # True
print(issubclass(D, (B, C))) # False
print(issubclass(E, (D, A))) # True
[root@lyucan ~]# ./23.py
True
True
False
True
True
False
True
isinstance()
用于判断实例对象和类对象之间的关系isinstance()
接收两个参数,第一个参数是实例对象,第二个参数是类对象或由类对象组成的元组 。
当第二个实参是类对象的时候,如果第一个实参是第二个实参的实例对象,或者第一个实参是第二个实参的子类的实例对象,则返回True。
当第二个实参是类对象组成的元组时,如果第一个参是第二个实参中任意一个类对象的实例对象,则返回True。
#!/usr/bin/python3
class A(object):
pass
class B(object):
pass
class C(object):
pass
class D(A):
pass
class E(D):
pass
print(isinstance(D(), A)) # True
print(isinstance(D(), D)) # True
print(isinstance(D(), E)) # False
print(isinstance(E(), A)) # True
print(isinstance(D(), (A, B))) # True
print(isinstance(D(), (B, C))) # False
print(isinstance(E(), (D, A))) # True
[root@lyucan ~]# ./23.py
True
True
False
True
True
False
True
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com