zoukankan      html  css  js  c++  java
  • python isinstance()方法的使用

    1. 描述
    Python中的 isinstance() 函数,是Python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似 type()。

    2. 语法
    isinstance(object,classinfo)
    1
    参数:

    object : 实例对象。
    classinfo : 可以是直接或者间接类名、基本类型或者由它们组成的元组。
    返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。

    3. 实例
    以下是使用isinstance()函数的实例:

    a = 2
    isinstance(a,int) # 结果返回 True

    isinstance(a,str) # 结果返回 False

    isinstance(a,(str,int,list)) # 是元组中的一个,结果返回 True

    4. isinstance()与type()的区别
    例如在继承上的区别:

    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    type() 不会认为子类是一种父类类型,不考虑继承关系。
    为了清楚的说明这种区别,我们做如下实验:

    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 False

    我们发现,创建一个A对象,再创建一个继承A对象的B对象,使用 isinstance() 和 type() 来比较 A() 和 A 时,由于它们的类型都是一样的,所以都返回了 True。而B对象继承于A对象,在使用isinstance()函数来比较 B() 和 A 时,由于考虑了继承关系,所以返回了 True,使用 type() 函数来比较 B() 和 A 时,不会考虑 B() 继承自哪里,所以返回了 False。

    如果要判断两个类型是否相同,则推荐使用isinstance()。
    ---------------------
    作者:飞鸟逐岸
    来源:CSDN
    原文:https://blog.csdn.net/HS_blog/article/details/81396664
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    c++父类指针子类指针转化分析
    setbuf手册
    c++细节
    cf727e
    总结
    UVa 10192 Vacation (最长公共子序列)
    HUNNU 11313 最长公共子序列(LCS)
    HDU 2069 Coin Change (经典DP)
    UVa 674 Coin Change (经典DP)
    UVa 10131 Is Bigger Smarter? (LDS+数据结构排序)
  • 原文地址:https://www.cnblogs.com/linwenbin/p/10491669.html
Copyright © 2011-2022 走看看