随笔 - 86  文章 - 5  评论 - 11  阅读 - 10万 
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(对象名)==类名”的方式。
posted on   史振兴  阅读(226)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示