天天看点

isinstance 与 type的区别和使用isinstance 与 type的区别和使用

isinstance 与 type的区别和使用

i s i n s t a n c e \color{#0000FF}{isinstance} isinstance,可以检测当前值是否属于我们给来的类型isinstance(b, (int, str),逗号前面的是要检测的值,逗号后面的是我们要检测的类型,类型也可也写入很多种,写成元组就好

t y p e \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并不会考虑继承的关系

isinstance 与 type的区别和使用isinstance 与 type的区别和使用

欢 迎 一 键 三 连 , 不 要 白 嫖 不 要 白 嫖 , 点 个 免 费 的 赞 也 好 , 有 不 懂 的 可 以 随 时 私 信 我 \color{#FF0000}{欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我} 欢迎一键三连,不要白嫖不要白嫖,点个免费的赞也好,有不懂的可以随时私信我