issubclass()用于判断类对象与类对象之间的关系。
#issubclass()前面是不是后面的子类,返回布尔类型 #第一个实参是类对象,第二个实参是类对象或由类对象组成的元组。 如果第一个实参是第二个实参中任意一个类对象的子类,返回True class A(object): pass class B(object): pass class C(object): pass class D(A): pass print(issubclass(D, A)) print(issubclass(D, B)) print(issubclass(D, (B, A, C))) print(issubclass(D, (B, C))) , print(issubclass(bool, int)) #True/False 实质上是0/1,因此属于int print(issubclass(bool, str)) #输出 True False True False True Falseisinstance()判断是不是实例。
print(isinstance(D(), D)) print(isinstance(D(), A)) #A是D的子类,D()是D的实例,故D()是A的实例 #输出 True Truetype():
class MyClass(object): pass mc = MyClass() print(type(mc)) #输出 <class '__main__.MyClass'>由上可得:实例对象的类型就是它对应的类对象
print(type(MyClass)) #输出 <class 'type'>由上可得:type是Python的一个总类,所有的类都属于在type中。 因此一个类对象的type是type
print(type(int)) print(type(str)) #输出 <class 'type'> <class 'type'> def do_sth(): pass print(type(do_sth)) #输出 <class 'function'>由上可得:自定义函数的类型是function
print(type(dir)) #输出 <class 'builtin_function_or_method'>由上可得:内置函数的类型是builtin_function_or_method
