内置函数isinstance、 issubclass和type

isinstance:用于判断一个对象所属的类是否是指定类或指定类的子类;   issubclass:用于判断一个类是否是另一个类的子类;   type:用于获取一个对象所属的类。   例:isinstance、issubclass和type使用示例。
 1 class Person: #定义Person类 
 2     pass 
 3 class Student(Person): #以Person类作为父类定义子类Student 
 4     pass 
 5 class Flower: #定义Flower类 
 6     pass
 7 if __name__=='__main__': 
 8     stu=Student() #创建Student类对象stu 
 9     f=Flower() #创建Flower对象f 
10     print('stu是Person类或其子类对象:', isinstance(stu,Person)) 
11     print('stu是Student类或其子类对象:', isinstance(stu,Student))
12     print('f是Person类或其子类对象:', isinstance(f,Person))                     
13     print('Student是Person类的子类:', issubclass(Student,Person))          
14     print('Flower是Person类的子类:', issubclass(Flower,Person))
15     print('stu对象所属的类:', type(stu)) 
16     print('f对象所属的类:', type(f)) 
17     print('stu是Person类对象:', type(stu)==Person) 
18     print('stu是Student类对象:', type(stu)==Student)
stu是Person类或其子类对象: True stu是Student类或其子类对象: True f是Person类或其子类对象: False Student是Person类的子类: True Flower是Person类的子类: False stu对象所属的类: <class '__main__.Student'> f对象所属的类: <class '__main__.Flower'> stu是Person类对象: False stu是Student类对象: True   提示: 如果我们要判断一个对象的类型是否是指定类或该类的子类,则可以使用isinstance函数。 如果我们要判断一个对象的类型是否是指定类,则可以使用“type(对象名)==类名”的方式。
上一篇:Asp.Net Core基础NLog记录日志


下一篇:isinstance和issubclass