• 技术文章 >后端开发 >Python教程

    isinstance在python中是什么意思

    青灯夜游青灯夜游2023-01-11 14:03:24原创127

    在python中,isinstance的意思是“类型判断”。isinstance()是一个内置函数,用于判断一个对象是否是一个已知的类型,语法“isinstance(object, type)”,如果是则返回True,否则返回False;而如果type参数是元组,而对象是元组中的类型之一,那么此函数也将返回True。

    本教程操作环境:windows7系统、python3版,DELL G3电脑

    在python中,isinstance的意思是“类型判断”。

    python isinstance() 函数

    isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

    isinstance() 与 type() 区别:

    • type() 不会认为子类是一种父类类型,不考虑继承关系。

    • isinstance() 会认为子类是一种父类类型,考虑继承关系。

    如果要判断两个类型是否相同推荐使用 isinstance()。

    如果指定的对象拥有指定的类型,则 isinstance() 函数返回 True,否则返回 False。

    如果 type 参数是元组,则如果对象是元组中的类型之一,那么此函数将返回 True。

    语法:

    isinstance(object, type)
    参数描述
    object必需。对象。
    type类型或类,或类型和/或类的元组。

    示例1:检查 "Hello" 是否是 type 参数中描述的类型之一

    x = isinstance("Hello", (str, float, int, str, list, dict, tuple))
    print(x)

    1.png

    示例2:检查 y 是否是 myObj 的实例

    class myObj:
      name = "Bill"
    
    y = myObj()
    
    x = isinstance(y, myObj)
    
    print(x)

    3.png

    扩展知识:type和isinstance的区别

    python中type可以获得一个对象的数据类型,isinstance可以判断一个对象的数据类型,他们的区别有两点

    1. isinstance更加灵活

    type只是返回一个对象的数据类型,而isinstance可以判断这个对象的数据类型是否为某几个数据类型中的一个。

    假设我们要判断一个对象的数据类型是否为int或者float,两个函数的写法示例如下

    a = 4
    
    # 使用type
    if type(a) == int or type(a) == float:
        print('yes')
    
    # 使用isinstance
    if isinstance(a, (int, float)):
        print('yes')

    显然,在这种场景下,isinstance更有优势

    2. 判断存在继承关系的情况

    class A:
        pass
    
    
    class B(A):
        pass
    
    a = A()
    b = B()
    
    print(type(b) == A)         # False
    print(isinstance(b, A))     # True

    B是A的子类, type(b)返回的是类B, 不等于A, 但B是A的子类,因此,我们可以认为b也是A的对象,面对这种存在继承关系的情况,应当使用isinstance

    推荐学习:Python视频教程

    以上就是isinstance在python中是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:python中“+=”是什么意思 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 详细总结:Python列表list知识点• 浅析vscode中怎么利用anaconda导入python库• 浅析vscode环境中导入python库的三种方法• python如何输出hello world代码• python字典添加元素的方法是什么
    1/1

    PHP中文网