1. 程式人生 > 實用技巧 >內建函式isinstance、 issubclass和type

內建函式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(物件名)==類名
”的方式。