isinstance 与 type的区别和使用

本文详细解析了Python中isinstance与type函数的区别,重点在于它们处理继承时的行为差异。isinstance在检查对象类型时会考虑继承关系,而type则不会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

isinstance 与 type的区别和使用

isinstance\color{#0000FF}{isinstance}isinstance,可以检测当前值是否属于我们给来的类型isinstance(b, (int, str),逗号前面的是要检测的值,逗号后面的是我们要检测的类型,类型也可也写入很多种,写成元组就好
type\color{#0000FF}{type}type,这个就很简洁明了type(a),直接在括号里输入要检测的变量就可告诉你他是什么类型的变量。
二者之间最大的关系是在检测类型时,会不会考虑子类继承父类也算进去\color{#0000FF}{二者之间最大的关系是在检测类型时,会不会考虑子类继承父类也算进去}

isinstance

class acc():
    def ame(self):
        print('111')

class aml(acc):
    def amk(self):
        pass
am = aml()
print(isinstance(am,aml))
print(isinstance(am,acc))   #检测一下am和他父类acc的关系
>>>True
True

显然的都是True,因此我们isinstance在检测时会考虑到继承的关系

type

class acc():
    def ame(self):
        print('111')

class aml(acc):
    def amk(self):
        pass
am = aml()
print(type(am) is aml)
print(type(am) is acc)   #我们使用is来判断实例化的am和类是否会考虑继承
>>>True
False

当程序进行到第二个检测时,打印为False,因此type并不会考虑继承的关系
在这里插入图片描述
欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我\color{#FF0000}{欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值