python 3 isinstance函数的用法,下面的代码如何解释?

发布网友 发布时间:2022-04-06 03:34

我来回答

2个回答

懂视网 时间:2022-04-06 07:56

在python中,isinstance的意思是“判断类型”;isinstance()是一个内置函数,用于判断一个对象是否是一个已知的类型,类似type()。

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

isinstance() 与 type() 区别:

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

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

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

    语法

    isinstance(object, classinfo)

    参数

  • object -- 实例对象。

  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

  • 返回值

    如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。

    示例:

    >>>a = 2
    >>> isinstance (a,int)
    True
    >>> isinstance (a,str)
    False
    >>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
    True

    推荐学习:Python视频教程

    热心网友 时间:2022-04-06 05:04

    isinstance 的用法:
    语法:
    isinstance(object, classinfo)

    其中,object 是变量,classinfo 是类型即 (tuple,dict,int,float,list,bool等) 和 class类
    若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。
    若 object 不是一个给定类型的的对象, 则返回结果总是False。
    若 classinfo 不是一种数据类型或者由数据类型构成的元组,将引发一个 TypeError 异常。
    例如:
    >>> isinstance(3, int)
    True
    >>>
    >>> isinstance(3.5, float)
    True
    >>>
    >>>isinstance(123,str)
    False
    >>>
    >>>isinstance('adf',(str,float,int))
    True
    >>>
    >>> class myClass:
    pass
    >>> test = myClass()
    >>> isinstance(test, myClass)
    True1234567101112131415161712345671011121314151617

    type()与isinstance()的区别:
    共同点:两者都可以判断对象类型
    不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。
    例如:
    class A:
    pass
    class B(A):
    pass

    isinstance(A(), A) # returns True
    type(A()) == A # returns True

    isinstance(B(), A) # returns True
    type(B()) == A # returns False123456710123456710

    综上,推荐使用 isinstance 判断对象类型。

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com