1、isinstance:判断某个实例释放由某个类创建的(或理解为对象是否类的实例,类可是创建对象的类,也可以是创建对象的类的基类),程序依赖于程序的输入,将用户输入的类型做分门别类的操作,返回True或False:
class ClassA(object): pass C = ‘xxx‘ A = ClassA() B = "a" C = "syring" print(isinstance(A, ClassA),"判断A是否ClassA类创建的类型,返回True") print(isinstance(B, ClassA),"判断B是否ClassA类创建的类型,返回False") print(isinstance(B, list),"判断B是否由list类创建的类型") print(isinstance(C, str),"判断C是否有str类创建的类型") print(isinstance(C, (int, str, list)),"判断C是否有int,str和list创建的类型") 执行结果: True 判断A是否ClassA类创建的类型,返回True False 判断B是否ClassA类创建的类型,返回False False 判断B是否由list类创建的类型 True 判断C是否有str类创建的类型 True 判断C是否有int,str和list创建的类型
2.判断某一个类是否另一个类的派生类(即子类):
class Class1(object): #Class1是Class2的基类 pass class Class2(Class1,object): #Class2是Class1的派生类 pass class Class3(object): pass print(issubclass(Class2,Class1),"Class2是Class1的派生(字)类") print(issubclass(Class3,Class1),"Class3不是Class1的派生(字)类") 执行结果: True Class2是Class1的派生(字)类 False Class3不是Class1的派生(字)类
原文:http://www.cnblogs.com/zhang-shijie/p/5250792.html