zoukankan      html  css  js  c++  java
  • python 之isinstance用法

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

    isinstance() 与 type() 区别:

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

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

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

    语法

    isinstance(object, classinfo)

    参数

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

    >>>a = 2

    >>> isinstance (a,int) True

    >>> isinstance (a,str) False

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

    对于基本类型来说 classinfo 可以是:

    intfloatboolcomplexstr(字符串),listdict(字典),settuple

    要注意的是,classinfo 的字符串是 str 而不是 string,字典也是简写 dict

    实例

    arg=123
    isinstance(arg, int)    #输出True
    isinstance(arg, str)    #输出False
    isinstance(arg, string) #报错

    用于判断是否是一个类的继承关系
    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

     可以在接受参数的时候 来校验参数类型 

  • 相关阅读:
    卿学姐与魔法(优先队列)
    H国的身份证号码(搜索)
    钓鱼(贪心,优先队列)
    Communication System(动态规划)
    最长连续01字符串
    魔法跳舞链 (最小生成树)
    括号匹配(线段树)
    bzoj 1042: [HAOI2008]硬币购物
    bzoj 1057: [ZJOI2007]棋盘制作
    bzoj 1452: [JSOI2009]Count
  • 原文地址:https://www.cnblogs.com/tangda/p/12299141.html
Copyright © 2011-2022 走看看