zoukankan      html  css  js  c++  java
  • python isinstance() 判断一个对象是否是一个已知的类型

    总结:

    1.isinstance() 函数要注意里面的type参数不能带引号,以及类型只能是单个type,或者是多个type组成的tuple

    2.isinstance() 函数可以配合 while和if使用,作为判断条件,是的我们的代码更加简洁,比如:

     if isinstance(frac, float):
       pass

     

    一、定义

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

    isinstance() 与 type() 区别:

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

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

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

    二、用法

    isinstance(object, classinfo)

    参数

    • object -- 实例对象。
    • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。前面的意思说:是int 就写int,不能写'int'

    返回值

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

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

    注意,type不用带引号

    a = 2
    print(isinstance (a,'int'))  #TypeError: isinstance() arg 2 must be a type or tuple of types

    和type的区别

    class A:
        pass
     
    class B(A):
        pass
     
    print(isinstance(A(), A) )   # returns True
    print(type(A()) == A )       # returns True
    print(isinstance(B(), A))    # returns True
    print(type(B()) == A  )      # returns False
  • 相关阅读:
    使用mustache js模板引擎
    Application Cache API (二)
    scrollMonitor 滚动事件
    NPM中的那些库
    lodash 函数功能 boilerjs
    SeaJS 里版本号和时间戳管理的最佳实践
    开源前端框架纵横谈
    URI.js – 全能的URL操作库
    执行用户定义例程或聚合 "" 期间出现 .NET Framework 错误:
    一般ALV错误有两种情况
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/14180968.html
Copyright © 2011-2022 走看看