issubclass()
issubclass():判断类对象与类对象之间的关系
内置函数接受两个参数:
第一个实参是类对象
第二个实参是类对象或类对象组成的元组
当第二个实参是类对象时,如果第一个实参是第二个实参的子类,那么返回True。
当第二个实参是类对象组成的元组时,如果第一个实参是第二个实参中任意一个类对象的子类,返回True。
class A(object):
pass
class B(object):
pass
class C(object):
pass
class D(A):
pass
print(issubclass(D,A))#判断D是不是A的子类
print(issubclass(D,B))#判断D是不是B的子类
#结果显示
True
False
print(issubclass(D,(B,A,C)))
print(issubclass(D,(B,C)))
##结果显示
True
False
print(issubclass(bool,int))
print(issubclass(bool,str))
##结果显示
True
False
print(issubclass(bool,(str,int,dict)))
print(issubclass(bool,(str,list,dict)))
##结果显示
True
False
isinstance()
isinstance():判断实例对象与类对象之间的关系
第一个实参是实例对象
第二个实参是类对象或类对象组成的元组
当第二个实参是类对象时,如果第一个实参是第二个实参的实例对象,或者第一个实参是第二个实参的子类的实例对象,那么返回True。
当第二个实参是类对象组成的元组时,如果第一个实参是第二个实参中任意一个类对象或其子类的实例对象,那么返回True。
class A(object):
pass
class B(object):
pass
class C(object):
pass
class D(A):
pass
print(isinstance(D(),D))#判断D()是不是D的实例对象
print(isinstance(D(),A))
##结果显示
True
True
print(isinstance(D(),(D,B,C)))
print(isinstance(D(),(B,A,C)))
##结果显示
True
True
type()
获得指定对象的类型。
实例对象的类型就是它所对应的类对象。
类对象的类型是‘type’,也就是说,类对象是type的一个实例对象。
class MyClass(object):
pass
mc = MyClass()
print(type(mc))
##结果显示
<class '__main__.MyClass'>
class MyClass(object):
pass
print(type(MyClass)